扫一扫
分享文章到微信

扫一扫
关注官方公众号
至顶头条
Jet 数据库引擎由用于 Microsoft Access 数据库的 Microsoft® Internet 信息服务 (IIS) 提供。此数据库引擎通常可以替代 Microsoft SQL Server,并且对于低容量的 Web 应用程序非常有用。Jet 数据库引擎是 OLEDB 兼容的,Microsoft .NET Framework System.Data.OleDb 命名空间中的类支持此引擎。
本演练中您将使用的主要对象为 OleDbConnection、OleDbCommand 和 OleDbDataReader 对象,以及 DataGrid 服务器控件。

图 1 ADO.NET 数据访问管道
OleDbConnection 对象控制与 Jet 数据库引擎的连接。OleDbCommand 包含告知数据库引擎采取何种操作的 Microsoft SQL 语句。OleDbDataReader 是一个快速、只读、仅向前的数据库游标,它可以读取由 SQL 语句选定的记录。DataGrid 可显示记录,并在添加、删除或编辑记录时引发事件。这些事件可以创建用于更改数据库并显示结果记录的新 SQL 语句。
在开始之前,您的计算机中必须安装以下软件:
| • | Windows® XP (SP1) 和所有修补程序 | 
| • | Microsoft Internet 信息服务 (IIS) | 
| • | Microsoft Access 2002 | 
| • | Visual Studio .NET | 
在尝试演练之前,请确保可以创建简单的 Visual C# ASP.NET Web 应用程序。
在本演练中,您将使用 Microsoft Access 创建一个数据库,并将使用 ADO.NET 创建、添加、编辑和删除记录。
| • | 打开 Microsoft Access,在新建的文件夹 C:\Pets 中创建一个名为 Pets.mdb 的空数据库。 | 
| • | 在 Designer(设计器)视图中创建一个新表。 | 
| • | 添加一个名为 ID 的自动编号字段和两个名为 PetName 和 PetType 的文本字段。将 ID 设置为主键,并接受所有默认设置。  | 
| • | 切换至数据表视图,并将表保存为 PetTable。 | 
| • | 向表中添加若干项。  | 
| • | 保存表,并关闭 Access。 | 
OleDbConnection 对象包含将 Jet 数据库引擎连接至 Pets.md 数据库的连接字符串。构造连接字符串时,将提供相对于应用程序根目录的 Pets.mdb 文件位置。相对路径通过 Server.MapPath 方法更改为物理路径。这使得在将 Web 应用程序发布至远程服务器的同时,Web 应用程序仍可用于 Jet 数据库引擎。
OleDbCommand 对象包含 SQL 语句 SELECT * FROM PetTable,该语句可以选择 PetTable 中的所有记录。OleDbCommand.ExecuteReader 方法可以创建一个 OleDbDataReader 对象以读取这些记录。DataGrid 通过其 DataGrid.DataSource 属性连接至数据读取器。
执行 DataGrid.DataBind 方法时,数据库记录从数据库移至 DataGrid,且每行显示一个记录。
| • | 打开 Visual Studio .NET。 | 
| • | 在 http://localhost/Pets 创建一个新的 Visual C# ASP.NET Web 应用程序。 | 
| • | 将文件 WebForm1.aspx 重命名为 PetForm.aspx。 | 
| • | 在 Solution Explorer(解决方案资源管理器)中,右击 Pets 项目根目录并选择 Add/New Folder(添加/新建文件夹)。将文件夹命名为 Pets。使文件夹保持选定状态。 | 
| • | 右击 Pets 项目,并将现有项 C:\Pets\Pets.mdb 添加到 Pets 文件夹。必须在 Files of Type(文件类型)下拉列表中选择 All Files(所有文件),才能在 Existing Item(现有项)浏览器窗口中看到 Pets.mdb 文件。 | 
| • | 在工具箱中,将 DataGrid 拖动至 Web 窗体,将其重命名为 datagrid。 | 
| • | 通过双击窗体切换至代码视图。 | 
| • | 将此行添加到 WebForm1.aspx.cs 开始处的 using 语句 using System.Data.OleDb; | 
| • | 将此代码插入到 Page_Load 方法: private void Page_Load(object sender, System.EventArgs e)    {         if (!IsPostBack)  ReadRecords();    } | 
| • | 将 ReadRecords 方法添加到紧接在 Page_Load 方法之后的 PetForm 类: private void ReadRecords(){    OleDbConnection conn = null;    OleDbDataReader reader = null;    try    {        conn = new OleDbConnection(            "Provider=Microsoft.Jet.OLEDB.4.0; " +             "Data Source=" + Server.MapPath("Pets/Pets.mdb"));        conn.Open();        OleDbCommand cmd =             new OleDbCommand("Select * FROM PetTable", conn);        reader = cmd.ExecuteReader();        datagrid.DataSource = reader;        datagrid.DataBind();}//        catch (Exception e)//        {//            Response.Write(e.Message);//            Response.End();//        }    finally    {        if (reader != null)  reader.Close();        if (conn != null)  conn.Close();    }} | 
| • | 按 F5 键在调试器中启动 Web 应用程序。数据库的内容应显示在浏览器中。  | 
| • | 关闭应用程序,然后关闭 Visual Studio。 | 
注意: 上述代码中包含 catch 语句的注释。默认情况下,Visual Studio 将创建一个 C# Web 应用程序项目,其 Generate Debugging Information 属性设置为 true。这将在 bin 目录创建一个 Pets.pdb 文件。默认的 ASP.NET 错误处理程序将使用此信息来创建错误详细信息页面,该页面显示了发生错误的源行以及堆栈跟踪和其他错误信息。
调试项目后,可以将 Generate Debugging Information 设置为 false,不再构建 Pets.pdb。此时,可以删除 catch 语句的注释,并将其替换为自己的错误处理程序。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。