- ADO.NET 对象介绍(一)
- ADO.NET 对象介绍(二)
- ADO.NET 对象应用分类
- DataReader 应用示例
- DataSet 应用示例
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 中一样操作数据库。
示例(片段)
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 常应用于将数据绑定到用户界面。
示例(片段)
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。
