使用SqlDataAdapter.Update可以方便地对mysql数据库教程进荇快速、批量数据更新我们最常用的多条数据更新方法是使用循环多次执行SQL语句或存储过程,这样虽然方便但由于连接和数据传递要茬服务器和客户端多次来往,大大增加了整个过程的时间当数据越大时越明显!
1.建立测试mysql数据库教程和表
2.建立解决方案和项目
//执行后查看表中数据,如图:
上面我只作了插入操作那现在将Select中的Top 0 去掉,把表中的数据全部加载到DataTable然后执行删除和更新操作
执行后将出错错误信息“对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成”
出错原因是建表时没有设置主键。主键唯一标识一行数据SqlCommandBuilder是根据DataTable每行的RowState及对應的主键来生成命令的,没有主键就无法确定删除哪条数据当然不可能根据其他列来删除,因为其他列可能重复这样会删除多行数据,很可能执行后不是你想要的结果这种不确定性的对数据的操作方法,微软当然不可能提供给你!
再次执行上面的代码2.
我们发现第12行數据更新了,但是第34行却没有删除。这是怎么回事呢
的注释去掉,使之执行Delete方法而不是RemoveAt方法
所以使用SqlCommandBuilder时应该注意的2点:表要有主键應使用delete方法删除行.
第SNo为11,12的数据是新增的
原来SNo为5,6也就是第34条数据已经被删除