当前位置: 首页 > 文章教程  > 计算机与互联网 > 网络编程

9.9SqlDataAdapter对象

8/31/2020 9:19:23 PM 人评论

9.9SqlDataAdapter对象

9.9 SqlDataAdapter对象

在前面已经提到,向DataSet对象中填充数据时需要使用DataAdapter对象。DataAdapter对象是一个适配器,它表示一组操作数据的命令和一个数据库连接。该对象充当数据库和DataSet之间的桥梁,用以协调双方数据同步。

9.9.1 创建SqlDataAdapter对象

与创建其他对象的方法一样,可以通过new实例化SqlDataAdapter对象。它有4种构造函数,形式如下。

    SqlDataAdapter da = new SqlDataAdapter();
    SqlDataAdapter da = new SqlDataAdapter(SqlCommand selectCommandText);
    SqlDataAdapter  da  =  new  SqlDataAdapter(String  selectCommandText,
    SqlConnection selectCommand);
    SqlDataAdapter da = new SqlDataAdapter(String selectCommandText, String selectConnectionString);

其中,第一行表示初始化SqlDataAdapter类的实例;第二行表示创建该类的实例,用指定的SqlCommand作为SelectCommand的属性;第三行使用SelectCommand和SqlConnection对象初始化一个SqlDataAdapter类的实例;最后一行用SelectCommand和一个连接字符串初始化SqlDataAdapter类的实例。

9.9.2 SqlDataAdapter对象更新数据

SqlDataAdapter对象提供多个属性,创建对象完毕后可以使用这些属性。如表9-10所示列举了SqlDataAdapter对象的常用属性。

表9-10 SqlDataAdapter对象的常用属性

提示

除表9-10中列出的属性外,SqlDataAdapter还提供方法,其中Update()方法和Fill()方法最为常用。Update()方法为DataSet中每个已插入、已更新或者已删除的行调用相应的INSERT、UPDATE或者DELETE语句;Fille()方法填充数据到DataSet或者DataTable中。

【范例12】

开发者可以通过SqlDataAdapter对象的Update()方法实现更新,通过这种方式实现更新有三种情况:即SqlCommandBuilder自动生成更新;使用配置数据源方式更新;手动编写命令。下面通过SqlCommandBuilder实现更新的代码,并将更新后的结果显示到GridView控件中。代码如下。

    protected void Page_Load(object sender, EventArgs e) {
        string constr = "Data Source=SJB; Initial Catalog= UserRegister; User
        ID=sa; Pwd = 123456";
        SqlConnection conn = new SqlConnection(constr);
        SqlCommand selectCMD = new SqlCommand("SELECT TOP 0 UserName, UserPass,
        UserMail, UserBirth FROM UserInfo", conn);
        DataTable dt = new DataTable();
        SqlDataAdapter sda = new SqlDataAdapter(selectCMD);
        sda.Fill(dt);
        for (int i = 1; i <= 10; i++)           //给DataTable添加10条记录
          dt.Rows.Add(new object[] { "Name" + i, "Name" + i, i + "@163.com",
          "1990-10-10" });
        SqlCommandBuilder scb = new SqlCommandBuilder(sda);
        sda.Update(dt.GetChanges());            //执行更新
        dt.AcceptChanges();                     //使DataTable保存更新
        gvShow.DataSource = dt;
        gvShow.DataBind();
    }

在上述代码中,创建SqlCommand对象时设置SELECT查询命令,SqlCommand Builder要求至少有SELECT命令。而SELECT TOP 0不是为了查询出数据,是要查询出表结构以向DataTable中填充表结构。

运行上述代码所在的页面查看效果,如图9-5所示。

图9-5 SqlDataAdapter对象更新数据

上一篇:9.8DataSet对象

下一篇:9.10其他常用对象

相关教程

共有条评论 网友评论

验证码: 看不清楚?