日期:2014-05-18  浏览次数:21015 次

高分求救!各位大哥,大姐!(菜鸟问题)---请问如何将数据库中的数据采集出来,然后放到另一台服务器的数据库上?????????????????????
我现在做的是C/S模式下的客户端程序,客户端实现的功能是实现数据采集,主要是把数据库中的数据采集出来,然后放到另一台服务器的数据库.现在遇到的问题是:如何才能将数据库中的数据采集出来.我是个菜鸟,刚入道,请各位大哥指点迷津....

------解决方案--------------------
这是以前的帖子里面的,在不同服务器间进行数据操作,sqlserver的,希望对你有帮助
--创建链接服务器 
exec sp_addlinkedserver 'srv_lnk ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' 
exec sp_addlinkedsrvlogin 'srv_lnk ', 'false ',null, '用户名 ', '密码 ' 
go 

--查询示例 
select * from srv_lnk.数据库名.dbo.表名 

--导入示例 
select * into 表 from srv_lnk.数据库名.dbo.表名 

--以后不再使用时删除链接服务器 
exec sp_dropserver 'srv_lnk ', 'droplogins ' 
go 

--如果只是临时访问,可以直接用openrowset 
--查询示例 
select * from openrowset( 'SQLOLEDB ' 
, 'sql服务器名 '; '用户名 '; '密码 ' 
,数据库名.dbo.表名) 


--导入示例 
select * into 表 from openrowset( 'SQLOLEDB ' 
, 'sql服务器名 '; '用户名 '; '密码 ' 
,数据库名.dbo.表名) 

------解决方案--------------------
10楼给你的并不是什么存储过程,只是一种方法,我稍微解释下吧:

exec sp_addlinkedserver 'srv_lnk ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '
exec sp_addlinkedsrvlogin 'srv_lnk ', 'false ',null, '用户名 ', '密码 '


上面这两句是创建一个链接服务器,使得服务器A能访问服务器B的数据库.楼主你依的格式试一下,然后通过查询分析器来下面的执行SQL:
select * from srv_lnk.数据库名.dbo.表名 



此种方法的好处在于,既然已经能在数据库中访问另一台服务器上的数据库,数据交换就不是什么难题了.楼主明白了吗 

------解决方案--------------------
你的法子,只要创建一个新的Connection就好了呀,
 SqlConnection conn1 = null; 
conn1 = new SqlConnection ("server=192.168.8.47;database=S3_for_CSM;uid=S3_for_CSM;pwd=S3_for_CSM"); 
conn1.Open();

创建一个新的SqlCommand,然后执行SQL语句,把dataset里的数据写到新链接里的表里 

------解决方案--------------------
现在你要做的,只是遍历dataset里的内容,填充到目标表里而已,大概流程如下:
C# code

    SqlConnection conn1 = null; 
                    conn1 = new SqlConnection("server=192.168.8.46;database=S3_for_CSM;uid=S3_for_CSM;pwd=S3_for_CSM"); 
                    conn1.open(); 

                    string strSql;
                    SqlCommand cmd=new SqlCommand();
                    foreach (DataRow row in ds.Tables[0].Rows)//遍历表格里的内容,一行一行写到目标数据库里
                    {
                        strSql="Insert Into table values("+row[0].ToString()+","+row[1].ToString()+")";
                        cmd.Connection = conn1;
                        cmd.CommandText = strSql;
                        cmd.ExecuteNonQuery();
                        
                    }
.....