您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

DataSet批量更新数据库

2024/10/16 12:43:56发布60次查看
业务需要从一个数据库复制数据到另一个数据库。当然可以一条一条的复制,但是两个数据库的表结构相同,通过操作dataset批量复制数据到另一个数据库,不管从开发效率还是执行效率上来说是不是更好一些呢。 需要注意的点,如下: 1、数据库中必须有主键,这样
     业务需要从一个数据库复制数据到另一个数据库。当然可以一条一条的复制,但是两个数据库的表结构相同,通过操作dataset批量复制数据到另一个数据库,不管从开发效率还是执行效率上来说是不是更好一些呢。
    需要注意的点,如下:
1、数据库中必须有主键,这样才便于增删改查;
2、sqldataadapter必须放在sqlcommandbuilder中,以用于批量执行dataset中的修改;
3、修改后的dataset需执行acceptchanges()方法后,才能更新dataset,以便于下一步操作;
4、sqldataadapter执行update的数据库不一定是fill的数据库,只要表结构相同即可。
示例代码如下:
public void copydata(dataset ds, string constring, string sql, string tablename) { sqlconnection conn = new sqlconnection(constring); try { conn.open(); sqldataadapter ada = new sqldataadapter(sql, conn); sqlcommandbuilder cb = new sqlcommandbuilder(ada); dataset destdataset = new dataset(); ada.fill(destdataset, tablename); //delete rows foreach (datarow item in destdataset.tables[pattern].rows) { item.delete(); } datatable dt = null; dt = destdataset.tables[pattern].getchanges(); if (dt != null) { ada.update(dt); } //insert rows foreach (datarow item in ds.tables[pattern].rows) { item.setadded(); } dt = ds.tables[pattern].getchanges(); if (dt != null) { ada.update(dt); } } catch (exception ex) { throw ex; } finally { conn.close(); } }
这是一个复制数据库的方法,功能为删除掉原有数据库中的数据,然后根据传过来的dataset,把dataset中的数据更新到数据库中。
这只是一个小例子,有不当的地方,希望大家讨论指正。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product