请问如何使用dataset来更新数据库?
我在程序中已经有一个存在数据的DATASET,而DATASET中的唯一一个表结构与将要更新的SQLSERVER中的表TEST1是结构一致的我想要将这个DATASET中的数据直接更新到数据库表TEST1中,请问该如何做啊? --------------------编程问答-------------------- System.Data.SqlClient.SqlBulkCopy或SqlDataAdapter.Update() --------------------编程问答-------------------- 我的写法是这样的,
SqlConnection objConn = new SqlConnection(sConnectionString);
objConn.Open();
SqlDataAdapter da = new SqlDataAdapter();
SqlCommandBuilder cb = new SqlCommandBuilder(da)
da.Update(dataSet,"TEST1");
但执行时报异常错误:“Update无法找到TableMapping['TEST1']或DataTable"TEST1"”
请问是怎么回事啊????
--------------------编程问答-------------------- 你绑定数据的时候也需要是这样的:
SqlDataAdapter.Fill(dataSet,"TEST1"); --------------------编程问答-------------------- 1、SqlConnection objConn = new SqlConnection(sConnectionString);
objConn.Open();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand("select * from TableName");
SqlCommandBuilder cb = new SqlCommandBuilder(da)
da.Update(dataSet,"TEST1");
建议用SqlBulkCopy:
SqlConnection sqlConnect = new SqlConnection;
sqlConnect.Open();
SqlBulkCopy bcp = new SqlBulkCopy(sqlConnect);
bcp.DestinationTableName = tableName; //tableName 数据库表名
bcp.WriteToServer(dt); //dt 包含数据的DataTable --------------------编程问答-------------------- da.Update(dataSet,"TEST1"); 中的dataSet是由另外一个函数返回的dataSet已经是有数据的,还要再FILL一次吗?
--------------------编程问答-------------------- SqlBulkCopy比SqlDataAdapter要快,为什么一定要用SqlDataAdapter呢? --------------------编程问答--------------------
SqlBulkCopy要USING哪个空间呢?我是用.NET2003
--------------------编程问答-------------------- da.Update(dataSet,"TEST1"); 设置正确之后执行没有报错了
但在数据库里查询发现数据根本没入库,是什么原因啊?
--------------------编程问答-------------------- 难道你还没看明白吗?da.Update(dataSet,"TEST1"); 是将表"TEST1"更新到数据库中,也就是说在数据库中新建一个TEST1的表,这和你的要求是大相径庭的,4楼的第二种方案才是你的最佳选择,是将数据集更新到特定的表中 --------------------编程问答-------------------- 你们一直在说的是数据表记录的添加,可是楼主问的是更新的问题。
我也很想知道,对于数据表中已经存在的数据,用SqlBulkCopy能进行更新操作吗?
--------------------编程问答-------------------- 去看看c#技术高级编程那本书或ado.net高级编程
补充:.NET技术 , C#