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。