ADO-DataSet对象和SqlDataAdapter对象实现读取和更新功能

本文介绍了如何使用SqlDataAdapter对象从数据库获取数据并填充到DataSet中,包括创建SqlConnection,定义SQL语句,使用SqlDataAdapter的Fill方法,以及关闭数据库连接的过程。同时,文章强调了DataSet在断开连接时处理大量数据的能力,和SqlDataAdapter在数据同步中的作用。此外,还提供了示例代码展示如何显示和更新数据,特别指出使用SqlCommandBuilder自动化更新命令的生成和更新数据到数据库的注意事项。
摘要由CSDN通过智能技术生成

使用SqlDataAdapter对象向DataSet对象中填充数据

步骤:

  • 创建SqlConnection对象
  • 创建要执行的SQL语句
  • 利用SQL语句和SqlConnection对象,创建SqlDataAdapter对象
  • 打开数据库连接并且调用SqlDataAdapter对象的Fill()方法填充DataSet
  • 关闭数据库的连接

1.步骤一:创建SqlConnection对象

string connstr = “连接字符串”;      
 
SqlConnection conn = new SqlConnection(connstr);      
 
conn.Open();

2.步骤二:创建要执行的SQL语句

string sql = "sql语句";//常用sql语句包括select、insert、update、delete

3.步骤三:创建SqlDataAdapter对象

SqlConnection conn = new SqlConnection(connstr);      
string sql = "select username as 用户名, pass as 密码, email as 电子邮件, tel as 电话号码 from register"; 
SqlDataAdapter da = new SqlDataAdapter(sql, conn); 

4.步骤四:调用SqlDataAdapter对象的Fill()方法填充DataSet

DataSet ds = new DataSet();  
da.Fill(ds,“reguser”);//reguser为表的名字

5.步骤五:关闭数据库的连接

conn.Close();

1.DataSet对象的创建方法:

DataSet ds=new DataSet(); //未指定创建时的参数
DataSet ds=new DataSet("Customer"); //指定创建时的参数,即指定了数据集的名称字符串

2.DataSet对象的属性

  • DataSet对象中可以包含一个或多个DataTable
  • 每个DataTable可以包含对应DataRow集合对象的Rows属性、对应DataColumn集合对象的Columns属性以及对应约束对象集合的Constraints属性
  • DataSet对象还包含DataRelation集合的Relations属性

1.SqlDataAdapter对象的属性

  • SelectCommand: 从数据源中检索数据
  • InsertCommand:从DataSet中把插入的记录写入数据库的操作
  • DeleteCommand:使用运行在DataSet对象上的数据删除数据库中的数据
  • UpdateCommand:使用运行在DataSet对象上的更新命令完成对数据库的操作

2.SqlDataAdapter对象的方法

  • Fill:填充数据集DataSet或DataTable
  • Update:将DataSet或DataTable中的修改更新到数据库中

3.SqlDataAdapter的构造方法

  • SqlDataAdapter() :无参,直接创建对象
  • SqlDataAdapter(sqlcommand,conn):用指定的参数构造SqlDataAdapter

注意:

  • 如果断开服务器的连接,使用DataSet和SqlDataAdapter对象可以在短时间内对大量的数据进行查询操作
  • DataSet对象可以在断开数据库连接的情况下查询数据,SqlDataAdapter对象可以解决数据库和DataSet之间数据的同步问题
  • SqlDataAdapter是DataSet和SQL Server之间的桥接器,用于检索和保存数据
  • SqlDataAdapter对象的Fill方法用于将查询结果填充到DataSet或DataTable中,以方便脱机处理数据

实例:读取数据表内容,将信息显示到GridView控件中,并实现更新功能

控件:button控件、DataGridView控件

代码:

        SqlDataAdapter sda;
        DataSet ds;
        private void btnShow_Click(object sender, EventArgs e)//显示查询数据的表格
        {
            string connstr = "data source=.;database=student;uid=sa;pwd=123456";
            SqlConnection conn = new SqlConnection(connstr);
            string sql = "select snum as 学号,sname as 姓名,ssex as 性别,sage as 年龄 from sinfo";
            sda = new SqlDataAdapter(sql,conn);//创建数据适配对象
            ds =new DataSet();//创建数据集对象
            sda.Fill(ds);//将查询结果填充到数据集
            conn.Close();
            dgvInfo.DataSource = ds.Tables[0];//将ds中第一张表,设成数据网格视图的数据源
        }

        private void btnUpdate_Click(object sender, EventArgs e)//更新
        {
            SqlCommandBuilder builder = new SqlCommandBuilder(sda);
            sda.Update(ds);
        }

更新功能注意:

  • 对DataSet的修改,可以使用SqlCommandBuilder通过Update自动更新到数据库
  • 在使用update方法前,要设置相应的命令,包括insert,update、delete等,但也可以使用SqlComandBuilder对象来自动生成更新所需要的相关命令
  • 简化操作:
SqlCommandBuilder builder=new SqlCommandBuilder(已创建的SqlDataAdapter对象); 
SqlDataAdapter对象.Update(数据集对象,“数据表名称”); //将DataSet的数据提交到数据源
  • 要想使SqlCommandBuilder起作用,必须注意两点:
  1. 数据表中必须设置主键
  2. 一开始创建SqlDataAdapter的那个sql语句必须包括主键的列,否则会出现“对于不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL”的错误提示

DataGridView控件

1.属性:

  • DataSource:设置DataGridView的数据源
  • DataMember:设置DataGridView显示DataSource的子列表
  • AllowUserToAddRows:设置是否允许添加行

2.该控件用于绑定时,常用到DataSource和DataMember属性,即下面两种绑定代码都是可以的:

 dataGridView1.DataSource = ds.Tables ["reguser"] ; //设置数据网格的数据源为ds的reguser表
dataGridView1.DataSource=dt;

           

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值