黑马程序员---ADO.Net之DateSet 更新

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

关于ADO.NET的相关知识摸索了一段时间了,稍微有了那么一点头绪了,笨啊,在这里重新复习一下关于DataSet的更新问题。

      string ConnStr = ConfigurationManager.ConnectionStrings["Connstr"].ConnectionString;
            using (SqlConnection conn = new SqlConnection(ConnStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "Select * from Person";
                    DataSet dataset = new DataSet(); //相当于一个容器
                    SqlDataAdapter adapter = new SqlDataAdapter(cmd); // 执行SQl语句的cmd语句(将查询的cmd作为参数传递给adapter(SqlDataAdapter是DataSet和数据库之间沟通的桥梁))
                    adapter.Fill(dataset); // 将执行的结果填充到DataSet
                    DataTable table = dataset.Tables[0];
                    DataRow row = table.Rows[2];
                    row["Name"] = "清风"; // 修改
                    //table.Rows.RemoveAt(1); // 删除一行
                    //DataRow dt = table.NewRow(); //新增一行
  }
}

此运行成功,  但这一切都是修改的内存中的DataSet,没有修改数据库

再次可调用SqlDataAdapter的Update方法将对DataSet的修改提交到数据库,Update方法有很多重载方法,可以提交整个DataSet、DataTable或者若干DataRow。但需要为SqlDataAdapter提供DeleteCommand、UpdateCommand、InsertCommand它才知道如何将对DataSet的修改提交到数据库。可以用SqlCommandBuilder自动生成这几个
Command,用法如下:    SqlCommandBuilder builder = new SqlCommandBuilder(adapter);

注意:SqlCommandBuilder要求表必须有主键

 

01.string ConnStr = ConfigurationManager.ConnectionStrings["Connstr"].ConnectionString;  
02.using (SqlConnection conn = new SqlConnection(ConnStr))  
03.{  
04.    conn.Open();  
05.    using (SqlCommand cmd = conn.CreateCommand())  
06.    {  
07.        cmd.CommandText = "Select * from Person";  
08.        DataSet dataset = new DataSet(); //相当于一个容器   
09.        SqlDataAdapter adapter = new SqlDataAdapter(cmd); // 执行SQl语句的cmd语句(将查询的cmd作为参数传递给adapter(SqlDataAdapter是DataSet和数据库之间沟通的桥梁))   
10.        adapter.Fill(dataset); // 将执行的结果填充到DataSet   
11.        DataTable table = dataset.Tables[0];  
12.        DataRow row = table.Rows[2];  
13.        row["Name"] = "清风"; // 修改   
14.        table.Rows.RemoveAt(1); // 删除一行   
15.        DataRow dt = table.NewRow(); // 新增一行   
16.  
17.  
18.        SqlCommandBuilder builder = new SqlCommandBuilder(adapter);  
19.        adapter.Update(dataset);  
20.    }  
21.}  

 

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ---------------------- 详细请查看:http://net.itheima.com/

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值