本文鏈接: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語句。