博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DataSet批量更新数据库
阅读量:5931 次
发布时间:2019-06-19

本文共 1715 字,大约阅读时间需要 5 分钟。

     业务需要从一个数据库复制数据到另一个数据库。当然可以一条一条的复制,但是两个数据库的表结构相同,通过操作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中的数据更新到数据库中。

这只是一个小例子,有不当的地方,希望大家讨论指正。

转载地址:http://jfktx.baihongyu.com/

你可能感兴趣的文章
java中String、StringBuffer、StringBuilder的区别
查看>>
collectionView怎么添加头视图
查看>>
修改代码主题等,提高阅读体验
查看>>
Sort With 2 Stacks - Medium
查看>>
新手小白 python之路 Day3 (string 常用方法)
查看>>
软件设计基础-C/S系统
查看>>
android 拖放功能
查看>>
js冒泡排序
查看>>
求职路 第二章 深圳篇
查看>>
SQL Server DDL触发器
查看>>
原生JS实现各种经典网页特效——Banner图滚动、选项卡切换、广告弹窗等
查看>>
如何让程序跑起来――第二章
查看>>
DNS BIND配置 配置基本缓存服务器 DNS正向解析 DNS反向解析
查看>>
【zheng环境准备】安装activemq
查看>>
Sublime 中 SFTP插件的使用
查看>>
软件架构设计学习总结(9):大型网站技术架构(二)架构模式
查看>>
微软云介绍
查看>>
bzoj1051[HAOI2006]受欢迎的牛
查看>>
mysql 删除重复数据保留只保留一条
查看>>
Android:保存图片到Sqlite数据库
查看>>