第四讲:DataAdapter深入

第四讲:DataAdapter深入

  1. UpdateAdapter:向数据库提交存储在DataSet中的更改
  2. UpdateAdapter原理:

a)         如果想对DataTable表中的数据进行update,insert,delete操作就要用到Update方法,Update 方法自动遍历DataTable中的所有行,   

3

3 数据源,DataSet,DataAdapter三者之间的关系

   DataAdapter作为桥梁连接数据源和DataSet

DataSet,在这里进行update,delete,insert

DataAdapter

DataBase

 Update()方法在这刷新

Fill方法

4一个常用类

SqlCommandBuilder:自动生成单表命令,在更新单一表简单情况下,我不需要知道如何编写sql语句以完成更新:意思是,在不SqlCommandBuilder对象后可以在一个表中不需要编写任何SQL语句就可以完成更新,是一个表

1.       DataTable  Rows集合的三个常用方法

Find方法:检索行

Add方法:创建行

Delete方法:删除行

Web.Config

<connectionStrings>

       <add name="connectionString" connectionString="Data Source=.; Initial Catalog=test; user id=sa; password=meng1986"/>

</connectionStrings>

Default.aspx.cs

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        String strConfiguration= System.Configuration.ConfigurationManager.ConnectionStrings ["connectionString"].ToString();

        SqlConnection sqlCon = new SqlConnection(strConfiguration);

 

       //填充DataSet

        SqlDataAdapter sqlAdapter = new SqlDataAdapter("select * from info",sqlCon );

        //执行SqlCommandBuilder后就已经执行了,并生成SQL语句

        //以下的语句好象没有用到sqlComBuilder 对象,其实当Rows[0].Add,Rows[0].Delete方法时会自动编译成insert语句,Delete语句

        SqlCommandBuilder sqlComBuilder = new SqlCommandBuilder(sqlAdapter);//生成sql命令并与SqlDataAdaper产生连接

        DataSet dataSet = new DataSet();

        sqlAdapter.Fill(dataSet, "info");//使用DataSet将数据进行填充

 

        //添加数据

        DataRow dr = dataSet.Tables["info"].NewRow();//使用DataTable对象的NewRow方法创建新行

        dr["name"] = "张三";

        dr["sex"] = "";

        //这里的add方法在哪来呢,来自于sqlCommandBuilder sqlCommandBuilder已经进行了编译

        //add语句已经根据select语句编写insert语句,这是它的微妙之处,局限在于只能对单表进行操作

        dataSet.Tables["info"].Rows.Add(dr);// Rows集全的Add方法添加行

 

        //修改数据

        Response.Write("修改之前的数据为:" + dataSet.Tables["info"].Rows[0]["name"] + "" + dataSet.Tables["info"].Rows[0]["sex"] + "<br>");

        dataSet.Tables["info"].Rows[0]["name"] = "李四";

        dataSet.Tables["info"].Rows[0]["sex"] = "";

        Response.Write("修改后的数据为:" + dataSet.Tables["info"].Rows[0]["name"] + "" + dataSet.Tables["info"].Rows[0]["sex"] + "<br>");

 

        //删除数据

             //这里的add方法在哪来呢,来自于sqlCommandBuilder sqlCommandBuilder已经进行了编译

        //这里的Delete语句已经根据select语句进行了编写delete语句 局限在于只能对单表进行操作

         dataSet.Tables["info"].Rows[0].Delete();

         sqlAdapter.Update(dataSet, "info");

         sqlCon.Close();

         Response.Write("数据已删除");

      

    }

}

 

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值