问题描述
我在程序中已经有一个存在数据的DATASET,而DATASET中的唯一一个表结构与将要更新的SQLSERVER中的表TEST1是结构一致的我想要将这个DATASET中的数据直接更新到数据库表TEST1中,请问该如何做啊?
解决方案
解决方案二:
System.Data.SqlClient.SqlBulkCopy或SqlDataAdapter.Update()
解决方案三:
我的写法是这样的,SqlConnectionobjConn=newSqlConnection(sConnectionString);objConn.Open();SqlDataAdapterda=newSqlDataAdapter();SqlCommandBuildercb=newSqlCommandBuilder(da)da.Update(dataSet,"TEST1");但执行时报异常错误:“Update无法找到TableMapping['TEST1']或DataTable"TEST1"”请问是怎么回事啊????引用1楼longfei_liuweitao的回复:
System.Data.SqlClient.SqlBulkCopy或SqlDataAdapter.Update()
解决方案四:
你绑定数据的时候也需要是这样的:SqlDataAdapter.Fill(dataSet,"TEST1");
解决方案五:
1、SqlConnectionobjConn=newSqlConnection(sConnectionString);objConn.Open();SqlDataAdapterda=newSqlDataAdapter();da.SelectCommand=newSqlCommand("select*fromTableName");SqlCommandBuildercb=newSqlCommandBuilder(da)da.Update(dataSet,"TEST1");建议用SqlBulkCopy:SqlConnectionsqlConnect=newSqlConnection;sqlConnect.Open();SqlBulkCopybcp=newSqlBulkCopy(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、SqlConnectionobjConn=newSqlConnection(sConnectionString);objConn.Open();SqlDataAdapterda=newSqlDataAdapter();da.SelectCommand=newSqlCommand("select*fromTableName");SqlCommandBuildercb=newSqlCommandBuilder(da)da.Update(dataSet,"TEST1");建议用SqlBulkCopy:SqlConnectionsqlConnect=newSqlConnection;sqlConnect.Open();SqlBulkCopybcp=newSqlBulkC…
解决方案十:
难道你还没看明白吗?da.Update(dataSet,"TEST1");是将表"TEST1"更新到数据库中,也就是说在数据库中新建一个TEST1的表,这和你的要求是大相径庭的,4楼的第二种方案才是你的最佳选择,是将数据集更新到特定的表中
解决方案十一:
你们一直在说的是数据表记录的添加,可是楼主问的是更新的问题。我也很想知道,对于数据表中已经存在的数据,用SqlBulkCopy能进行更新操作吗?
解决方案十二:
去看看c#技术高级编程那本书或ado.net高级编程