在上一篇中,我們主要講解了什麼是ADO.NET 及其三個常用對象的用法,這一篇我們主要學習ADO.net中的新寵配適器對象及內存表對象。
目標:
DataAdapter 對象
DataSet 對象
DataTable 對象
DataAdapter對象:數據適配器是ADO.NET托管提供程序(用於在數據源和數據集之間通信的一組對象)的組成部分 ,適配器用於在數據源和數據集之間交換數據,
適配器對象在DataSet與源數據之間起到橋梁的作用。
DataAdapter對象的常用方法:
Update():從名為“Table”的DataTable為指定的DataSet中每個已插入、已更新或已刪除的行調用相應的INSERT、UPDATE或DELETE語句。
Fill(): 在DataSet中添加或刷新行以匹配使用DataSet名稱的數據源中的行,並創建一個名為“Table”的DataTable。
Dispose():釋放由 DataAdapter 占用的資源。
DataSet 對象:DataSet(數據集)是ADO.NET結構的主要組件,屬於System.Data命名空間。它是從數據源中檢索到的數據在內存中的緩存。具有類似數據庫的結構,如表、列、關系和約束。DataSet支持標准的查看、添加、移除及更新操作;而且這些操作並非只限於數據庫數據。
DataTable 對象:DataTable對象表示了內存中的一個關系數據表,可以獨立創建和使用,也可以由其他.NET Framework對象使用,最常見的情況是作為DataSet的成員使用。DataTable類是.NET Framework類庫中System.Data命名空間中的成員。
關於DataSet 及DataTable在 MSDN有很詳細的資料,本文旨在讓大家能實際的應用DataAdapter對象創建數據源,並呈現在窗體上。所以不做詳細的講解,在今後的文章中,我們詳細的分析DataSet 及DataTable 的使用。
例:
繼續打開我們上一篇所使用的例子
1.在設計窗體時從工具箱拉一個dataGridView控件到到窗體上如圖:
2.繼續在Users類中增加方法,分別在窗體加載時讀取數據與在點擊查詢時讀取數據:
/// <summary> /// 查詢數據,並填充到數據集當中 /// </summary> /// <returns></returns> public DataTable DTable() { string strSql = "select * from Users"; DataTable dt = new DataTable();//創建內存表對象,用來保存適配器對象從數據庫中取得的數據 SqlDataAdapter da = new SqlDataAdapter(strSql,Conn);
//創建適配器對象,注意,我們使用的是SQL數據庫,所以創建對象的類名為SqlDataAdapter,參數要求SQL語句與鏈接字符串,在這裡不需要像SqlCommand一樣打開和關閉數據庫,因為配適器對象幫我們完成了這部分工作。
da.Fill(dt);//用適配器對象的Fill()方法將查詢出來的數據填充到內存表對象dt中
return dt;//返回內存表對象 } /// <summary> /// 跟據用戶名查詢數據,並填充到數據集當中 /// </summary> /// <param name="name">參數要求用戶名</param> /// <returns></returns> public DataTable DTable(string name) { string strSql = "select * from Users where Username like '%"+name+"%'"; DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter(strSql, Conn); da.Fill(dt); return dt; }
3.打開設計界面,在類中將Users類實例化為對象u如:Users u = new Users(),雙擊窗體標題欄,進入窗體加載事件所調用的方法。並寫代碼如下:
創建方法:
private void Gx() { dataGridView1.DataSource = u.DTable();//將數據源賦值給dataGridView對象的DataSource屬性 foreach (string str in u.List())//遍歷所有的Users類中ListArray方法所返回的ArrayList的值 { comboBox1.Items.Add(str);//將值添加到comboBox中 } }
在窗體加載事件所調用的方法中調用Gx()
private void Form2_Load(object sender, EventArgs e) { Gx(); }
4.打開設計界面,雙擊查詢按鈕,進入查詢按鈕的單擊事件所調用的方法並寫代碼如下:
private void button4_Click(object sender, EventArgs e) { string name = comboBox1.Text;//讀取comboBox1下拉列表中的值 dataGridView1.DataSource = u.DTable(name);//把所取得的值當作參數傳給Users類中的DTable方法,並返回DataTable對象。 }
至此我們講了DataAdapter 對象及DataTable對象的簡單應用。
本文出自 “共享經驗” 博客,請務必保留此出處http://jianle.blog.51cto.com/429692/109801
本文配套源碼