C#中DataSet、SqlDataAdapter的使用-关于数据库操作

本文链接:https://blog.csdn.net/xubaifu1997/article/details/51816785


DataSet

表示数据在内存中的缓存。

我的理解是,在内存中的数据表,需要引用

using System.Data;

SqlDataAdapter

表示用于填充 DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接。

此类不能被继承。

暂时知道的用法是使用它进行数据库查询操作,之后将查询到的结果填充给DataSet对象。

A simple example of using DataSet

/*

连接字符串

*/

SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();

scsb.DataSource = "WIN-KGQPBDFG53P\\SQLEXPRESS";

scsb.InitialCatalog = "STU50";

scsb.UserID = "sa";

scsb.Password = "123";

/*

连接对象

*/

SqlConnection sqlConn = new SqlConnection(scsb.ToString());

sqlConn.Open();

/*

查询语句

*/

string commStr = "SELECT 学号, 姓名, 出生日期 FROM Readers";

/*

创建SqlDataAdapter对象

第一个参数是SQL语句字符串

第二个参数是已打开连接的数据库连接对象

*/

SqlDataAdapter sda = new SqlDataAdapter(commStr, sqlConn);

/*

将查询到的内容填充到DataSet对象

使用SqlDataAdapter的Fill方法

第一个参数是DataSet对象

第二个参数是指定表的名称

*/

DataSet ds = new DataSet();

sda.Fill(ds, "Readers");

/*

将DataSet中的表传给DataGridView控件

*/

dgvShowInfo.DataSource = ds.Tables["Readers"];

利用SqlDataAdapter同步更新数据库

当在DataGridView控件中对数据进行修改时,可以直接将修改内容同步写入数据库。

建立一个按钮,用与执行同步数据库的操作,当按钮被点击时,执行

SqlCommandBuilder scb = new SqlCommandBuilder(sda);

sda.Update(ds, "Readers");

PS:ds需要有主键列才能进行更新操作

参考:

SqlCommandBuilder是用于自动生成SQL语句的一个类,当需要进行更改时生成SQL语句把更改写进数据库。

如果去掉SqlCommandBuilder,需要自己写关于更新的SQL语句。