ADO.NET 对象应用分类

作者:vkvi 来源:ITPOW(原创) 日期:2007-6-26

ADO.NET 对象众多,我们将其分成两大类,第一类是直接与数据库相关的对象,以 Sql 或 OleDb 开头,第二类是与 DataSet 相关的,诸如数据表、数据视图等。

本文属 .NET Framework 1.0 范畴,2.0 中兼容。


ASP 中,操作数据库常常只需要 Connection 和 RecordSet,最多搭上 Command,而在 ASP.NET 中应用 ADO.NET 时则要复杂得多,这可能是由于对象众多,并且对象的属性与方法众多的原因。我们着重通过两个常用的应用,试图帮助大家理解 ASP.NET 中应用 ADO.NET 的方法。

 

DataReader 应用

DataReader 应用于客户界面利用手写代码的情况,即没有用到数据绑定且数据的更新是利用手写的 SQL 语句或存储过程,即像 ASP 中一样操作数据库。

示例(片段)

string sql = "select * from tbl";
SqlConnection conn = new SqlConnection("server=(local);User ID=foo;Password=foo;Initial Catalog=foo");
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
    //记录存在
}
else
{
    //记录不存在
}
dr.Close();
dr.Dispose();
cmd.Dispose();
conn.Close();
conn.Dispose();

 

DataSet 应用

DataSet 常应用于将数据绑定到用户界面。

示例(片段)

string sql = "select * from tbl";
SqlConnection conn = new SqlConnection("server=(local);User ID=foo;Password=foo;Initial Catalog=foo");
//conn.Open(); //不需要
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
da.Fill(ds);
dg.DataSource = new DataView(ds.Tables[0]); //dg 为 DataGrid 控件
dg.DataBind();
ds.Dispose();
da.Dispose();
conn.Close();
conn.Dispose();

 

DataReader 和 DataSet 应用分类

DataReader

Connection -> Command -> DataReader

DataSet

Connection -> DataAdapter -> DataSet -> DataTable -> DataView -> DataGrid

以上箭头并不表示继承、调用、数据流关系,只是应用时所需对象的先后顺序,我们这样分类是便于您理解、记忆 DataReader 和 DataSet 的应用。

以上应用并非固定模式,ADO.NET 中这几个对象的应用是非常灵活的,比如:在应用 DataReader 时,我们可以不用 conn.Open()(conn 为 connection 对象)打开数据库连接,而用 cmd.Connection.Open()(cmd 为 Command 对象)打开数据库连接;又如:使用 DataAdapter 时也可以用 Command。

相关文章