高分求救!各位大哥,大姐!(菜鸟问题)---请问如何将数据库中的数据采集出来,然后放到另一台服务器的数据库上?????????????????????
我现在做的是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();
}
.....