下面我们就用 NET 程序的集成开发工具 Visual Studio NET 实际开发一个Access数据库存取组件并将它重复使用在另外的 ASPNET 应用系统中
组件的创建
启动 VSNET新建 Visual C# 项目模板选类库
这样就在我们机器的我的文档\Visual Studio Projects 下生成一个新的文件夹ClassLibrary并且自动生成Classcs 文件
using System;namespace ClassLibrary
{ ///
/// Class 的摘要说明
///
public class Class
{public Class()
{ //
// TODO: 在此处添加构造函数逻辑
//
}
}}
因为我们即将生成的组件与数据存取有关所以必须添加数据库引用语句
using SystemData;using SystemDataOleDb;
另外我们可以把命名空间换成我们自己的命名myDB
类名也换成myDbLink
然后我们还定义了三个属性
使我们的代码通用性更强
public string sDbPath = ; //数据库路径(包括数据库名)public string sDbTable = ;//表名
public string sPassword = ;//数据库口令
myDbLink类中的getData()方法将返回查询的表的视图这样我们定制后的完整代码如下
using System;using SystemData;
using SystemDataOleDb;
namespace myDB
{public class myDbLink
{
public string sDbPath = ;
public string sDbTable = ;
public string sPassword = ;
public DataView getData()
{
OleDbConnection oConn;
OleDbDataAdapter oAdp;
DataSet oDtSt;
oConn = new OleDbConnection
(Provider=MicrosoftJetOLEDB;Data Source=
sDbPath ;Password= sPassword ;);oConnOpen();
oAdp = new OleDbDataAdapter(select * from sDbTable oConn);
oDtSt = new DataSet();
oAdpFill(oDtSt table);
return oDtStTables[table]DefaultView;
}
}
}
getData()方法中的代码的意义为首先声明三个引用类型的变量oConn(数据库连接对象)oAdp(数据适配器对象)oDtSt(数据集对象)然后实例化数据库连接对象并打开数据库连接oConn再通过SQL语句生成数据适配器对象oAdp再通过oAdp的Fill方法把获得数据填充到数据集对象oDtSt的table表(自动产生)中最后返回table表的默认视图DefaultView
为了生成我们期望的名字为myClassdll的组件文件必须点击菜单项目\ClassLibrary属性在弹出的属性页对话框中把程序集名称的值修改为myClass确定后关闭属性页对话框窗口然后执行运行菜单下的生成ClassLibrary命令这时就在我的文档\Visual Studio Projects\bin\Debug 下生成一个myClassdll文件就是我们即将使用的数据库存取组件
组件的部署
为了测试我们生成的组件可以再另外建立一个ASPNET Web应用程序项目假设项目名为WebApplication这样会在IIS里生成一个WebApplication虚拟路径同时在默认网站下生成一个WebApplication文件夹我们即将测试的组件就要拷贝到WebApplication下的bin文件夹下这样组件就部署完毕了
ASPNET 的测试代码
在生成的WebApplication项目的WebForm上拖放一个DataGrid组件在工程中添加对myClassdll组件的引用再在文件头部引用我们的命名空间
using myDB;
然后在WebFormaspxcs的Page_Load事件中键入以下代码
private void Page_Load(object sender SystemEventArgs e){ myDbLink oDbTable;
oDbTable = new myDbLink();
oDbTablesDbPath = D:\\_My_Documents\\databasemdb;
oDbTablesPassword = ;
oDbTablesDbTable = myTab;// myTab是数据库中的表
DataGridDataSource = oDbTablegetData();
DataGridDataBind();
}
由于把从数据库中取出来的表视图作为DataGrid的数据源与DataGrid绑定所以运行WebApplication项目后DataGrid中就显示出表myTab中的数据