扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者