Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)qqpublished in(发表于) 2014/7/9 1:35:21 ADO.NET链接数据库DataAdapter对象应用实例
ADO.NET链接数据库DataAdapter对象应用实例
DataAdapter对象SqlDataAdapter对象是DataSet对象和SQL Server之间的桥接器,用于检索和保存数据。SqlDataAdapter对象通过对数据源使用适当的Transact-SQL语句映像Fill方法(它可更改DataSet对象中的数据以匹配数据源中的数据)和Update方法(它可更改数据源中的数据以匹配DataSet对象中的数据)来提供这一桥接。当SqlDataAdapter对象填充DataSet对象时,它为返回的数据创建必需的表和列(如果这些表和列尚不存在)。但是,除非将MissingSchemaAction属性设置为AddWithKey,否则这个隐式创建的架构中不包括主键信息。用户也可以使用FillSchema方法,让SqlDataAdapter对象创建DataSet对象的架构,并在用数据填充它之前就将主键信息包含进去。SqlDataAdapter对象常用属性及描述如表1所示。表1 SqlDataAdapter的属性及描述下面介绍几个主要的属性。(1)DeleteCommand属性。获取或设置一个Transact-SQL语句或存储过程,用以从数据集删除记录。语法:public SqlCommand DeleteCommand { get; set; }属性值:在Update过程中使用SqlCommand对象,用以在数据库中删除对应于DataSet对象中已删除行的记录。示例为SqlDataAdapter对象指定DeleteCommand属性,程序代码如下:adapter.DeleteCommand = command;(2)InsertCommand属性。获取或设置一个Transact-SQL语句或存储过程,用以在数据源中插入新记录。语法:public SqlCommand InsertCommand { get; set; }属性值:在Update过程中使用SqlCommand对象,用以在数据库中插入对应于DataSet对象中的新的一行行记录。示例为SqlDataAdapter对象指定InsertCommand属性,程序代码如下:adapter. InsertCommand= command;(3)SelectCommand属性。获取或设置一个Transact-SQL语句或存储过程,用于在数据源中选择记录。语法:public SqlCommand SelectCommand { get; set; }属性值:在Fill过程中使用的SqlCommand对象,用来从数据库中为DataSet对象中的位置选择记录。示例为SqlDataAdapter对象指定SelectCommand属性,程序代码如下:adapter.InsertCommand= command;(4)UpdateCommand属性。获取或设置一个Transact-SQL语句或存储过程,用于更新数据源中的记录。语法:public SqlCommand UpdateCommand { get; set; }属性值:在Update过程中使用的SqlCommand对象,用于在数据库中更新对应于DataSet对象中已修改行的记录。示例为SqlDataAdapter对象指定UpdateCommand属性,程序代码如下:adapter.UpdateCommand= command;示例DataAdapter对象以及属性的应用当用户编写完一条SQL语句后,通过IndexOf方法可以获得用户SQL语句要实现的功能。然后调用相应的方法返回DataAdapter对象。程序代码如下。using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace 21_05{public partial class Form1 : Form{SqlDataAdapter da;public Form1(){InitializeComponent();}……编写其他方法或事件}}首先通过单击【适配器】按钮生成SQL语句,然后对SQL语句进行判断(判断是哪种操作,例如,添加、修改、删除、查询),最后根据判断结果调用相应的方法,程序代码如下。private void button2_Click(object sender, EventArgs e){ClsDB cb = new ClsDB();DataTable dt=new DataTable("Resouce");if (this.textBox1.Text.Trim().ToString() != ""){string strSql = this.textBox1.Text.Trim().ToString();if (strSql.IndexOf("insert") != -1){da = CreateInsAdapter(strSql, cb.Conn());}else if (strSql.IndexOf("update") != -1){da = CreateUpdAdapter(strSql, cb.Conn());}else if (strSql.IndexOf("select") != -1){da = CreateSelAdapter(strSql, cb.Conn());}else if (strSql.IndexOf("delete") != -1){da = CreateDelAdapter(strSql, cb.Conn());}else{MessageBox.Show("SQL语句不合法");this.textBox1.Select(0, this.textBox1.Text.Length);this.textBox1.Focus();return;}}try{da.Fill(dt);
赞