1. 程式人生 > >.NET學習(三)用DataSet快取資料庫中的資料

.NET學習(三)用DataSet快取資料庫中的資料

DataSet的使用

DataSet相當於一個數據快取容器。
DataAdapter用於將資料從資料庫中提取出來,存放到DataSet物件中。

大致有以下五個步驟:
1.例項化一個DataAdapter物件。
(注意:以下名稱空間均在MySql環境下!!使用其他資料庫的同學請選擇相應的庫)

MySqlDataAdapter dataAdapter = new MySqlDataAdapter();

2.將之前的Command物件(詳見上篇或者下例)賦給相應的dataAdapter的command變數。

dataAdapter.SelectCommand = command;

3.例項化一個DataSet物件。

DataSet dataSet = new DataSet();

4.將DataAdapter的執行結果(Select SQL 語句返回值)填充到DataSet物件中。

dataAdapter.Fill(dataSet);

5.使用DataSet中的資料。

eg:dataSet.Tables[0] //返回DataSet物件中的第一個表

完整程式碼示例:
(UI控制元件只有一個GridView,用於顯示查取到的整個表)

using System;
using System.Collections.Generic;
using System.Linq
; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using MySql.Data; using MySql.Data.MySqlClient; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { MySqlConnection connection = new MySqlConnection(System.Web
.Configuration.WebConfigurationManager.ConnectionStrings["Con"] .ConnectionString.ToString()); try { connection.Open(); MySqlCommand command = new MySqlCommand("SELECT * FROM login", connection); MySqlDataAdapter dataAdapter = new MySqlDataAdapter(); dataAdapter.SelectCommand = command; DataSet dataSet = new DataSet(); dataAdapter.Fill(dataSet); this.GridView1.DataSource = dataSet.Tables[0].DefaultView; this.GridView1.DataBind(); } catch(Exception err) { } finally { connection.Close(); } } }

執行結果:
執行結果

DataSet與DataReader的選擇

一般情況下,DataReader的速度不僅比DataSet塊,而且其使用的記憶體也較小(DataSet相當於快取),如果資料繫結控制元件不需要提供排序或分頁功能,最好使用DataReader。否則使用DataSet。