ado.net读取数据的两种方法
1.使用Command和Datareader对象读取数据
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//打开一个页面时,初始状态时IsPostBack为false,执行if里面的语句,
//,这时IsPostBack变为true
if (!IsPostBack)
{
//创建数据库连接 Sqlconnection
SqlConnection conn = new SqlConnection("server=(local);Initial Catalog=pubs;Integrated Security=True");
//创建数据库语句
string strsql = "select pub_name from publishers";
//创建Sqlcommand对象
SqlCommand comm = new SqlCommand(strsql, conn);
try
{
//打开数据库连接
conn.Open();
//创建Sqldatareader对象
SqlDataReader sdt = comm.ExecuteReader(); //执行sqldatareader
while (sdt.Read())
{ //注意如何将每次读取到的记录添加到listbox1中(因为第一次做时出错了,嘿嘿)
ListItem item = new ListItem(sdt["pub_name"].ToString());
ListBox1.Items.Add(item);
}
sdt.Close(); //关闭sqldatareader
}
catch (SqlException ex)
{
Console.WriteLine(ex.ToString());
}
finally
{ //关闭数据库连接
conn.Close();
}
}
}
}
总结:此种方法适用情形:a.不需要缓存数据
b.需要处理的结果集太大,内存中存放不下
c. 需要仅向前,只读方式快速访问数据库
2.使用Dataadaper与Dataset读取数据
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient; //在使用Microsoft Sql Server必须引用的命名空间
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlConnection conn = new SqlConnection("server=(local);Initial Catalog=pubs;Integrated Security=true");
string strsql = "select pub_name from publishers";
//创建一个SqlDataAdapter
SqlDataAdapter sda = new SqlDataAdapter(strsql, conn);
//创建一个Dataset
DataSet ds = new DataSet();
//将Dataadpter获取的数据填充到ds中
//并创建一个publishers DataTable对象,将数据存其中
sda.Fill(ds, "publishers");
DataTable dt = ds.Tables["publishers"];
for (int i = 0; i < dt.Rows.Count; i++)
{
ListItem item = new ListItem(dt.Rows[i][0].ToString()); //此处应该注意列的下标
ListBox1.Items.Add(item);
}
}
}
}
总结:(1)Dateset主要是在内存中存放数据,是数据在内存在缓存,可一次读取整张数据表的内容
(2)Dateset是一个对象集合,是由许多DataTable对象组成的。

浙公网安备 33010602011771号