摘要:文章立足于实际应用,阐述了ADO.NET访问数据库的步骤,并利用较大篇幅对ASP.NET平台下使用类库进行数据库操作的方法进行了详细论述,并给出源代码和详细注释,文章给出的所有代码均在ASP.NET2.0下调试通过。
关键字:数据库;类库;调用
中图分类号:TP31文献标识码:A
文章编号:1674-1145(2009)05-0153-02
ASP.NET不是ASP的简单升级,而是全新一代的动态网页实现系统。它是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序。它是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。ASP.NET在面向对象性、数据库连接、大型站点应用等方面都优于ASP,ASP.NET还提供更多的其他方面的新特性,例如:内置的对象缓存和页面结果缓存;内置的XML支持,可用于XML数据集的简单处理;服务器控制提供了更充分的交互式制等。
ASP.NET中的ADO.NET和ASP中的ADO相对应,它是ADO的改进版本。ADO.NET的最重要概念之一是DataSet。DataSet是不依赖于数据库的独立数据集合。(所谓独立,就是:即使断开数据链路,或者关闭数据库,DataSet依然是可用的。)如果你在ASP里面使用过非连接记录集合(Connectionless Recordset),那么DataSet就是这种技术的最彻底的替代品。在ADO.NET中,通过Managed Provider所提供的应用程序编程接口(API),可以轻松地访问各种数据源的数据,包括OLEDB所支持的和ODBC支持的数据库。
ADO.NET访问数据库的步骤是:
1.创建一个数据库链路;
2.请求一个记录集合;
3.把记录集合暂存到DataSet;
4.如果需要,返回第2步;(DataSet可以容纳多个数据集合)
5.关闭数据库链路;
6.在DataSet上作所需要的操作。
DataSet在内部是用XML来描述数据的。由于XML是一种平台无关、语言无关的数据描述语言,而且可以描述复杂数据关系的数据,比如父子关系的数据,所以DataSet实际上可以容纳具有复杂关系的数据,而且不再依赖于数据库链路。
按照上面的访问数据库的步骤方法,在需要对数据库进行操作时,只需按部就班的写出相关代码和参数就能比较容易的实现ADO.NET编程。但在进行大型软件开发时,如果每访问一次数据库,就对操作数据库的代码进行重复编写,则大大增加了程序代码的冗余度,降低了软件的可靠性和可读性。所以本文使用类库对数据库进行访问,将对数据库的操作代码进行简化。按照访问数据库的步骤,将相应的代码写入类中,在使用时直接调用相关的类,就可以实现对数据库的访问操作。
具体步骤如下:
首先创建一个类库DAL,在其中定义数据库的基类database:
public class database//数据库基类
{
public SqlConnection databaselink() //连接数据库
{
SqlConnection conn=new SqlConnection ();
conn.ConnectionString =ConfigurationSettings.AppSettings .Get ("connstr");
//通过web.config文件获取connstr作为conn连接字符串。
return conn;
}
public DataSet tablelink(string linkstr,SqlConnection conn)
//连接表,linkstr为连接字符串
{
SqlDataAdapter sda=new SqlDataAdapter(linkstr,conn);
DataSet ds= new DataSet();
try
{
sda.Fill (ds);
}
catch
{
Response.Write("");
}
return ds;
}
}
再创建另一个类库BUL,在其中定义操作数据库的类operatdatabase:
using dal;//调用数据库基类的命名空间
public class operatdatabase//操作数据库的类
{
public DataSet selecttable(string linkstr) //查询表,
{
database db=new database ();
SqlConnection conn=db.databaselink();
DataSet ds=new DataSet();
ds=db.tablelink(linkstr,conn);
return ds;
}
public void updatatable(string linkstr) //更新记录
{
database db=new database ();
SqlConnection conn=db.databaselink();
DataSet ds=new DataSet();
ds=db.tablelink(linkstr,conn);
}
public void datalist(DataGrid DataGrid1,string linkstr) //绑定数据
{
operatdatabase db=new operatdatabase() ;
DataSet ds=new DataSet();
ds=db.selecttable (linkstr);
DataGrid1.DataSource =ds.Tables[0] ;
DataGrid1 .DataBind ();
}
}
在需要进行数据库操作时,首先要调用操作数据库的类operatdatabase的命名空间BUL,然后再调用查询、更新和绑定数据库的相关函数。
using bul;
…
operatdatabaseop1=new operatdatabase() ;
//定义一个操作数据库的对象op1
op1.selecttable(string linkstr);
op1.updatatable(string linkstr);
op1.datalist(DataGrid DataGrid1,string linkstr);
//使用该对象的实例对数据库进行操作
在一般的信息管理系统程序中,如果使用类库进行数据库编程,则只需在数据库操作时反复调用操作数据库的类operatdatabase,定义一个关于该类的对象,使用相应的方法,就能减少相当多的重复代码,增加了程序的健壮性,大大提高了程序的可读性与移植性。
参考文献
[1]李万宝.ASP.NET技术详解与应用实例[M].机械工业出版社.
[2]郑霞,赵辉,徐慧.ASP.NET2.0编程技术与实例[M].人民邮电出版社.
作者简介:容湘萍,女,湖南邵东人,广东省惠州商业学校计算机助理讲师,研究方向:计算机应用。