该例中使用 CommandBuilder 自动生成 SQL 语句,若要为 DataAdapter 自动生成 SQL 语句,首先设置 DataAdapter  SelectCommand 属性,然后,创建一个 CommandBuilder 对象并以参数形式指定CommandBuilder 将为其自动生成 SQL 语句的 DataAdapter

 

具体实现步骤:

1.          仍在项目WebCourse中,在chapter8文件夹中,添加一个Web窗体:useDataAdapter.aspx

 

2.          useDataSet.aspx.cs文件的头部,添加要用到的命名空间:

using System.Data.SqlClient;

 

3.          useDataSet.aspx.cs文件的Page_Load事件处理程序中添加如下代码:

//1使用Connection对象连接数据库

     string connStr="server=localhost;uid=sa;pwd=sa;database=myWebDB";

     SqlConnection myConnection = new SqlConnection(connStr);

             

     //2创建访问数据表的DataAdapter对象

     string queryStr="select * from information";           

     SqlDataAdapter myDataAdapter=new SqlDataAdapter(queryStr,myConnection);   

 

     //3使用DataSet对象存放数据表

     DataSet myDataSet=new DataSet();

     myDataAdapter.Fill(myDataSet,"information");

 

     Cleanup();//清除上一次插入的记录

                  

     //在数据集中插入一条新记录

     SqlCommandBuilder mySqlCommandBuilder =

     new SqlCommandBuilder(myDataAdapter); //使用 CommandBuilder 自动生成 SQL 语句

             

     DataRow myDataRow = myDataSet.Tables["information"].NewRow();

     myDataRow["title"] ="新title";

     myDataRow["author"]="新author";

     myDataRow["content"] = "新content";

     myDataRow["datetime"] = System.DateTime.Now;

     myDataSet.Tables["information"].Rows.Add(myDataRow);

                      

     myDataAdapter.Update(myDataSet, "information");

Response.Write("已经完成更新!");

 

4.          useDataSet.aspx.cs文件中添加自定义函数Cleanup()

string connStr="server=localhost;uid=sa;pwd=sa;database=myWebDB";

     SqlConnection myConnection = new SqlConnection(connStr);             

     myConnection.Open();

     string delStr="DELETE FROM information WHERE title = '新title'";

     SqlCommand myCommand = new SqlCommand(delStr, myConnection);

     myCommand.ExecuteNonQuery();             

myConnection.Close();

posted on 2009-04-29 01:21  蓝色侵略  阅读(685)  评论(1编辑  收藏  举报