有一个应用,是需要将oracle中的表A同步到sqlserver中的表B(说明表B是一个空表,每次开始此操作前将truncate table B)
表A与表B的结构一样,只是字段名称不一样
现在想通过dataset的insert功能来实现
首先将oracle中表A的数据放入dataset中,再从dataset一次性update到sqlserver请问哪位有现成的程序代码,提供一下参考,谢谢
表A与表B的结构一样,只是字段名称不一样
现在想通过dataset的insert功能来实现
首先将oracle中表A的数据放入dataset中,再从dataset一次性update到sqlserver请问哪位有现成的程序代码,提供一下参考,谢谢
MSDN上的实例执行单词批量复制
SqlConnection connection = New SqlConnection(connectionString);
string queryString = "BULK INSERT Northwind.dbo.[Order Details] " +
"FROM 'f:\mydata\data.tbl' " +
"WITH ( FORMATFILE='f:\mydata\data.fmt' )";
connection.Open();
SqlCommand command = new SqlCommand(queryString, connection);command.ExecuteNonQuery();
connection.Close();
2.定义适配器的数据库联拉和COMMAND
3.定义适配器的INSERTCOMMAND和SQL语句,特别是参数
4.关闭对象与连接.
使您可以用其他源的数据有效批量加载 SQL Server 表。语法
public sealed class SqlBulkCopy : IDisposable备注
Microsoft SQL Server 提供一个称为 bcp 的流行的命令提示符实用工具,用于将数据从一个表移动到另一个表(表既可以在同一个服务器上,也可以在不同服务器上)。SqlBulkCopy 类允许编写提供类似功能的托管代码解决方案。还有其他将数据加载到 SQL Server 表的方法(例如 INSERT 语句),但相比之下 SqlBulkCopy 提供明显的性能优势。使用 SqlBulkCopy 类只能向 SQL Server 表写入数据。但是,数据源不限于 SQL Server;可以使用任何数据源,只要数据可加载到 DataTable 实例或可使用 IDataReader 实例读取数据。
DataSet ds1; //设置dataSet1中所有的行状态,都为Added状态,这点很重要
foreach (DataRow row in ds1.Tables[0].Rows)
{
row.SetAdded();
}
//创建连接Sql Server的Conncetion和Adapter
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
SqlDataAdapter adp = new SqlDataAdapter(); //创建一个往MSSQL里插入数据的Command,并赋给Adapter
SqlCommand cmd1 = new SqlCommand("Insert into tblEntity(Entity_Id,Entity_Name) Values(@Entity_Id,@Entity_Name)", conn);
adp.InsertCommand = cmd1; //设置Insert命令的参数与相应的字段,如下:@Entity_Id是参数,Entity_Id是DataSet中的字段名
adp.InsertCommand.Parameters.Add("@Entity_Id", SqlDbType.Char, 10, "Entity_Id");
adp.InsertCommand.Parameters.Add("@Entity_Name", SqlDbType.VarChar, 50, "Entity_Name"); //执行UPDATE,更新数据
adp.Update(ds1);
MessageBox.Show("添加完成");
很合理,但是我用的是vs2003
好像没有row.SetAdded();
你自己测试一下,速度也会很快!