当前位置:编程学习 > C#/ASP.NET >>

请问如何使用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"”

请问是怎么回事啊????


引用 1 楼 longfei_liuweitao 的回复:
System.Data.SqlClient.SqlBulkCopy或SqlDataAdapter.Update()
--------------------编程问答-------------------- 你绑定数据的时候也需要是这样的:
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一次吗?


引用 3 楼 viki117 的回复:
你绑定数据的时候也需要是这样的: 
SqlDataAdapter.Fill(dataSet,"TEST1");
--------------------编程问答-------------------- SqlBulkCopy比SqlDataAdapter要快,为什么一定要用SqlDataAdapter呢? --------------------编程问答--------------------
SqlBulkCopy要USING哪个空间呢?我是用.NET2003

引用 6 楼 longfei_liuweitao 的回复:
SqlBulkCopy比SqlDataAdapter要快,为什么一定要用SqlDataAdapter呢?
--------------------编程问答-------------------- da.Update(dataSet,"TEST1"); 设置正确之后执行没有报错了
但在数据库里查询发现数据根本没入库,是什么原因啊?


引用 4 楼 longfei_liuweitao 的回复:
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 SqlBulkC…
--------------------编程问答-------------------- 难道你还没看明白吗?da.Update(dataSet,"TEST1");   是将表"TEST1"更新到数据库中,也就是说在数据库中新建一个TEST1的表,这和你的要求是大相径庭的,4楼的第二种方案才是你的最佳选择,是将数据集更新到特定的表中 --------------------编程问答-------------------- 你们一直在说的是数据表记录的添加,可是楼主问的是更新的问题。
我也很想知道,对于数据表中已经存在的数据,用SqlBulkCopy能进行更新操作吗?
--------------------编程问答-------------------- 去看看c#技术高级编程那本书或ado.net高级编程
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,