您的位置:首页 > 编程语言 > ASP

ASP.NET基础教程-使用CommandBuilder对象自动生成SQL语句对数据进行批量更新

2007-10-04 19:15 2186 查看


用自己的INSERT、UPDATE与DELETE语句或存储过程将改变从DataSet推向数据库中需要编写大量代码。为了编写这些代码,可以用一个CommandBuilder对象,自动生成INSERT、UPDATE与DELETE命令,并在DataAdapter对象的InsertCommand、UpdateCommand、DeleteCommand属性中设置这些命令。当改变DataSet中的数据并调用DataAdapter的Update()方法时,运行自动生成的命令,将改变从DataSet推向数据库。
尽管利用CommandBuilder对象可以节省一些代码编写工作,但使用此对象时,要记住以下局限:
1、DataAdpater对象的SelectCommand命令只能从一个表中读取。
2、SelectCommand中使用的数据库表必须包含主键。
3、表格主键必须放在SelectCommand中。
4、CommandBuilder生成命令需要一定时间,因为它要检查数据库。
注意:由于CommandBuilder会使程序性能下降,因此应避免大数据量批量更新使用,为了提高性能,应使用存储过程
代码示例如下:
一、引入命名空间

using System.Data.SqlClient;//用于操作SQLSERVER数据库
using System.Configuration;//用于引用Web.config配置文件中的数据库连接语句
二、创建数据库连接和读取对象
private static SqlConnection con;
private static SqlDataAdapter da;
private static DataSet ds;
private static SqlCommandBuilder cb;
private static string oSql;
三、读取数据
private void Read_Data_Click(object sender, System.EventArgs e){
con=new SqlConnection(@ConfigurationSettings.AppSettings["server"] );
con.Open();
oSql="SELECT 部门,电话分类,电话,ID FROM 公司电话 ORDER BY 部门,电话分类";
da=new SqlDataAdapter(oSql,con);
cb=new SqlCommandBuilder(da);
ds=new DataSet();
da.Fill(ds,"公司电话");
con.Close();
dataGrid1.SetDataBinding(ds,"公司电话");
}
四、更新数据
private void Update_Data_Click(object sender, System.EventArgs e){
con.Open();
da.Update(ds,"公司电话");
con.Close();
MessageBox.Show("数据更新完毕");}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐