有两个数据库.在不同的服务器上.现在要把一数据库中某表的值复制到另一个数据库中的某表中(表中字段不同).用c#如何能够实现?我现在用的方法是:建立两个连接,分别连接两个数据库服务器。现在能够从一个服务器中读出数据并放到DataSet中.下面该如何将DataSet值取出并写入到另一服务器的数据库中?如有好方法也请写出!
解决方案 »
- 【高分求解】在Winform中如何获得一个URL的真实域名。
- 无法使用集合初始化值初始化类型未实现“System.Collections.IEnumerable”
- 已经写好了一个控制台的时钟程序,请高手帮我改成Form程序
- c#如何让窗口不在任务栏显示?
- 怎么将C# winform应用程序打包成安装文件啊
- 诚请高手解惑 !!!!!
- 图文混排
- DataAdapter的Fill问题,请指教....
- 再求][共享] Janus Web GridEX Net V1.0.2500 注册机
- 条码打印问题。请各位兄弟帮书忙
- vs2005数据库访问
- ADO.net 中如何得到所有可见的 database?(100分)
2。目标绑定到一个空数据集到另一个dataset(就是只有结构)
3。源dataset复制到 目标 dataset
4。使用SqlDataAdapter的Update方法更新到目的服务器此方法针对1万条记录进行了测试,自己感觉效率还比较高。更好的方法暂时没有找到,如果谁有更好的方法请告知,谢谢
DataSet ds = new DataSet();
using (SqlConnection cnn = new SqlConnection())
{
cnn.ConnectionString = cnnString;
cnn.Open();
SqlDataAdapter da = new SqlDataAdapter(sql1,cnn);
// 填充源数据
da.Fill(ds);
cnn.Close();
}
// 打开目标连接
using(SqlConnection cnn2 = new SqlConnection())
{
cnn2.ConnectionString = cnnStringDest;
cnn2.Open();
DataSet ds_d = new DataSet();//目的表填充
SqlDataAdapter da_d = new SqlDataAdapter(sql2,cnn2);
daInsCmd.Connection = cnn2;
da_d.InsertCommand = daInsCmd;---这里生成你目的表的 InsertCommand;
da_d.Fill(ds_d,"table");
int c = 0;
foreach (DataRow dri in ds.Tables[0].Rows)
{
DataRow newRow = ds_d.Tables[0].NewRow();
for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
{
newRow[i] = dri[i];
}
ds_d.Tables[0].Rows.Add(newRow);
c++;
}
da_d.Update(ds_d,"table");
}大体代码是这样的,自己调试一下吧
SelectCommand:设置从源数据库获得读取;
InsertCommand:设置为目标数据库。但是要为DataAdapter定义新的Update方法,来进行提交数据库更新。
2.用c#写程序读配置文件