.NET學習(三)用DataSet快取資料庫中的資料
阿新 • • 發佈:2019-01-05
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。