DataSet详解(C#)

448 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第17天,点击查看活动详情 >>

Dataset是什么?

Dataset是临时保存在内存中的数据库,包含n张DataTable相当于里面的表。DataTable包含了行(Row)和列(Column)

image.png

演示

创建一个winform窗体应用,添加几个DataGridView控件,如下图所示

image.png

  • 当窗体初始化时创建dataset及datatable
            DataSet ds = new DataSet();
            //新增加一个表(不命名)
            DataTable dt = new DataTable();
            ds.Tables.Add(dt);


            //新增加一个表(命名)
            DataTable dt2 = new DataTable("student");
            ds.Tables.Add(dt2);
            dgvStudent.DataSource = ds.Tables["student"];

DataTable有两个创建方式,此代码都展示了,第一个不命名的话可以使用索引来获取到表。第二个使用了命名就可以直接使用表名获取到。

  • 下一步我们将定义表结构
 //定义表结构
            DataColumn dc = new DataColumn();
            dc.ColumnName = "Sid";
            dc.DataType = System.Type.GetType("System.Int32");
            dt.Columns.Add(dc);
            dt.Columns.Add(new DataColumn("Sname", Type.GetType("System.String")));

表结构需要定义列名称及列的类型。同样也有两个方式均展示出来了

  • 下一步我们需要去添加数据,此处可以去数据库拿,此次就直接手动添加了,后续会将从数据库拿数据的方法补充在这个文章下面。
  //插入数据
            DataRow dr = dt.NewRow();
            dr[0] = 9001;
            dr[1] = "张三";
            dt.Rows.Add(dr);

            dt.Rows.Add(new Object[] {90000,"王五"});

  • 下一步我们需要绑定数据,因为我们只是定义了数据并没有将数据绑定在控件上,只有绑定后才会在控件上显示出来。
    //绑定数据
            dgvStudent.DataSource = null;
            dgvStudent.DataSource = ds.Tables[0];

如果之前使用的是表名定义则也可以使用表名去绑定数据。

最终效果

image.png 最终我们就可以看到数据已经在上面显示了。在真实代码中我们还可以将创建表这些方法封装一下,方便调用及方便代码的阅读。

DataSet常用方法 :

Clear()清除所有数据的DataTable。

Clone() 克隆DataTable 的结构,包括所有DataTable 架构和约束。

EndInit()结束在窗体上使用或由另一个组件使用的DataTable 的初始化。初始化发生在运行时。

ImportRow(DataRow row) 将DataRow 复制到DataTable 中,保留任何属性设置以及初始值和当前值。 
Merge(DataTable table)  将指定的DataTable 与当前的DataTable 合并。 
NewRow() 创建与该表具有相同架构的新DataRow。
AcceptChanges()  提交自上次调用AcceptChanges() 以来对该表进行的所有更改。 
BeginInit()开始初始化在窗体上使用或由另一个组件使用的DataTable。初始化发生在运行时。