1. 程式人生 > >ADO.Net中DataSet的應用

ADO.Net中DataSet的應用

ADO.Net中DataSet的應用

 

 

一、知識點描述

 

1、DataSet是ADO.NET的中心概念。可以把DataSet當成記憶體中的資料庫,DataSet是不依賴於資料庫的獨立資料集合。也就是說,即使斷開資料鏈路,或者關閉資料庫,DataSet依然是可用的。

 

2、建立和重新整理 DataSet 並依次更新原始資料的步驟:

  • 通過 DataAdapter 使用資料來源中的資料生成和填充 DataSet 中的每個 DataTable。
  • 通過新增、更新或刪除 DataRow 物件更改單個 DataTable 物件中的資料。
  • 呼叫 DataAdapter 的 Update 方法,並將第二個 DataSet 作為引數傳遞。

 

3、DataSet所有資料都載入在記憶體上執行的,可以提高資料訪問速度,提高硬碟資料的安全性,極大的改善了程式執行的速度和穩定性。

 

4、每一個DataSet物件是由若干個 DataTable物件組成。

 

5、DataSet使用方法:

  • 把資料庫中的資料通過DataAdapter物件填充DataSet。
  • 通過DataAdapter物件操作DataSet實現更新資料庫。

 

6、DataSet物件的三大特性

  • 獨立性。
    DataSet獨立於各種資料來源。
  • 離線(斷開)和連線。
  • DataSet物件是一個可以用XML形式表示的資料檢視,是一種資料關係檢視。

 

 

二、思維導圖

 

 

 

三、效果截圖

 

 

 

 

 

四、示例程式碼

 1 DataSet PubsSet = new DataSet();
 2 SqlConnection ConnPubs;
 3 DataSet ds = new DataSet();
 4 
 5         private
void frm_PatientInformationManage_Load(object sender, EventArgs e) 6 { 7 8 ConnPubs = new SqlConnection(); //宣告並例項化SQL連線; 9 ConnPubs.ConnectionString = 10 ConfigurationManager.ConnectionStrings["Sql"].ConnectionString; //在字串變數中,描述連線字串所需的伺服器地址、資料庫名稱、整合安全性(即是否使用Windows驗證); 11 SqlCommand sqlCommand = new SqlCommand(); //宣告並例項化SQL命令; 12 sqlCommand.Connection = ConnPubs; 13 sqlCommand.CommandText = "select P_id as 醫療卡號,P_name as 姓名 ,P_sex as 性別,P_birthday as 生日,P_nation as 民族,Feetype as 付費型別,P_tel as 電話,P_pym as 拼音碼,P_address as 地址,P_career as 職業,P_bloodtype as 血型,P_allergic as 過敏藥物,P_idcard as 身份證號,P_Photo from tb_patient"; 14 15 ConnPubs.Open(); 16 SqlDataAdapter da = new SqlDataAdapter(); 17 da.SelectCommand = sqlCommand; 18 da.Fill(PubsSet, "tb_patient"); 19 dataGridView1.DataSource = PubsSet.Tables["tb_patient"]; 20 21 this.dataGridView1.Columns["P_Photo"].Visible = false; //隱藏照片列 22 23 SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(); //宣告並例項化SQL資料介面卡,同時藉助建構函式,將其SelectCommand屬性設為先前建立的SQL命令; 24 sqlDataAdapter.SelectCommand = sqlCommand; //將SQL資料介面卡的查詢命令屬性指向SQL命令; 25 DataTable tb_patient = new DataTable(); //宣告並例項化資料表,用於儲存所有班級,以用作下拉框資料來源; 26 27 sqlDataAdapter.Fill(tb_patient); //SQL資料介面卡讀取資料,並填充班級資料表; 28 this.cmb_SearchPYM .DataSource = tb_patient; //將班級下拉框的資料來源設為班級資料表; 29 // this.cmb_SearchPYM.DisplayMember = "P_pym"; //將班級下拉框的顯示成員設為班級資料表的名稱列; 30 this.cmb_SearchId .DataSource = tb_patient; 31 // this.cmb_SearchId.DisplayMember = "P_id"; 32 this.cmb_SearchId.DisplayMember = "醫療卡號"; 33 this.cmb_SearchPYM.DisplayMember = "拼音碼"; 34 //this.cmb_SearchPYM.ValueMember = "U_id"; 35 36 37 }