通过 ADO.NET 操纵 Access 数据库

通过 ADO.NET 编辑 Access 数据库 通过 ADO.NET 编辑 Access 数据库发布日期: 8/8/2003 | 更新日期: 6/7/2004Martin TracyVisual Studio TeamMicrosoft Corporation适用于: Microsoft® ADO.NETMicrosoft® ASP.NETMicrosoft® Visual C#® .NETMicrosoft® Visual 阅读详情
发布日期: 8/8/2003 | 更新日期: 6/7/2004

Martin Tracy
Visual Studio Team
Microsoft Corporation

适用于: Microsoft® ADO.NET
Microsoft® ASP.NET
Microsoft® Visual C#® .NET
Microsoft® Visual Studio® .NET

摘要:本演练说明了如何使用简单的 Visual C#® 内含代码 Web 应用程序通过 ADO.NET 在 Microsoft® Access 数据库中添加、删除和编辑记录。

下载示例代码 ADONETAccessDB.exe(英文)。(130KB)

*
本页内容
简介 简介
要求要求
演练演练
参考参考

简介

Jet 数据库引擎由用于 Microsoft Access 数据库的 Microsoft® Internet 信息服务 (IIS) 提供。此数据库引擎通常可以替代 Microsoft SQL Server,并且对于低容量的 Web 应用程序非常有用。Jet 数据库引擎是 OLEDB 兼容的,Microsoft .NET Framework System.Data.OleDb 命名空间中的类支持此引擎。

本演练中您将使用的主要对象为 OleDbConnection、OleDbCommand 和 OleDbDataReader 对象,以及 DataGrid 服务器控件。

adon_wtaccessdb_01

图 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 设置为主键,并接受所有默认设置。
adon_wtaccessdb_02
图 2 在 Access 中设计数据表

•

切换至数据表视图,并将表保存为 PetTable。

•

向表中添加若干项。
adon_wtaccessdb_03
图 3 添加测试数据

•

保存表,并关闭 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 应用程序。数据库的内容应显示在浏览器中。
adon_wtaccessdb_04
图 4 浏览器中显示的数据库

•

关闭应用程序,然后关闭 Visual Studio。

注意: 上述代码中包含 catch 语句的注释。默认情况下,Visual Studio 将创建一个 C# Web 应用程序项目,其 Generate Debugging Information 属性设置为 true。这将在 bin 目录创建一个 Pets.pdb 文件。默认的 ASP.NET 错误处理程序将使用此信息来创建错误详细信息页面,该页面显示了发生错误的源行以及堆栈跟踪和其他错误信息。

调试项目后,可以将 Generate Debugging Information 设置为 false,不再构建 Pets.pdb。此时,可以删除 catch 语句的注释,并将其替换为自己的错误处理程序。

配置数据库

默认情况下,ASP.NET 用户没有向数据库中写入记录或在包含数据库的文件夹中创建锁定文件 (.ldb) 的权限。您必须授予 ASP.NET 用户这些权限。通常使用以下三种方法之一来授予权限:

•

将 ASP.NET 用户添加到管理员组。

•

为 web.config 文件中的应用程序启用模拟。

•

为数据库文件以及包含该数据库的文件夹添加 ASP.NET 写入权限。

在本演练中,您将使用第三种(最安全的)方法授予写入权限。

•

在 File Explorer(文件资源管理器)中,找到新建的 Pets 文件夹,它通常位于 C:/Inetpub/wwwroot/Pets/Pets。

•

右击 Pets 文件夹,并选择 Properties(属性)。

•

选择 Security(安全)选项卡,并单击 Add(添加)按钮。

•

添加对象名 <YOURMACHINE>/ASPNET,其中 <YOURMACHINE> 是您的计算机名。单击 OK(确定)返回到 Security(安全)选项卡。

•

选择 ASP.NET 帐户,并添加 Write(写入)权限。此帐户被命名为 aspnet_wp 帐户、ASP.NET MACHINE 帐户或其他类似的名称。

•

在 File Explorer(文件资源管理器)中,右击文件 Pets.mdb,并选择 Properties(属性)。

•

选择 Security(安全)选项卡,并单击 Advanced(高级)按钮。

•

选取 Inherit from parent the permissions entries that apply to child objects(从父项继承那些可以应用到子对象的权限项目)。单击 OK(确定)以接受更改。

有关 ASP.NET 安全问题的详细信息,请参阅 Authentication in ASP.NET: .NET Security Guidance(英文)。

创建 DataGrid 编辑列

您可以使用 Visual Studio 属性生成器向 DataGrid 添加列。属性生成器包含格式选项,可以向 DataGrid 添加颜色和样式。

•

在 Visual Studio 的 Designer(设计器)视图中,选择 DataGrid。如果 Property(属性)窗口未打开,请从 View(视图)菜单将其打开。

•

在 Properties(属性)窗口的最底部会显示两个链接:Auto Format(自动格式)和 Property Builder(属性生成器)。选择 Property Builder(属性生成器)。

•

选择 Columns(列)视图。

•

取消选取 Create columns automatically at run time(运行时自动创建列)。

•

在 Available Columns(可用列)列表中,展开 Button(按钮)列。选择 Edit(编辑)、Update(更新)、Cancel(取消)选项。单击“>”按钮将其添加到 Selected Columns(选定列)列表中。

•

在 Available Columns(可用列)列表中,选择 Bound Column(绑定列)。单击“>”按钮将其添加到 Selected Columns(选定列)列表中。将标头文本设置为“宠物名字”,将 Data(数据)字段设置为“PetName”。

•

重复上一步以添加其他绑定列,将标头文本设置为“宠物类型”,将 Data(数据)字段设置为“PetType”。

•

单击 OK(确定)返回到 Designer(设计器)视图。DataGrid 将反映所作的更改。

•

在 Properties(属性)窗口的最底部,选择 Auto Format(自动格式)。

•

选择一个格式,例如“Colorful 1”。

•

单击 OK(确定)返回到 Designer(设计器)视图。DataGrid 将反映所作的更改。
adon_wtaccessdb_05
图 5 添加了编辑链接的 DataGrid

•

按 F5 键在调试器中启动 Web 应用程序。数据库的内容应显示在浏览器中。
adon_wtaccessdb_06
图 6 浏览器中的编辑链接和数据

编辑 DataGrid

DataGrid.EditItemIndex 属性可以选择一行进行编辑。选定一行进行编辑时,在每个单元格中将显示文本框。每个文本框中的文本被设置为数据记录中相应字段的值。

您必须将 Edit(编辑)链接连接到某个事件处理程序,该事件处理程序可以选择包含要进行编辑的链接的行。您还应该将 Cancel(取消)链接(尚不可见)连接到某个事件处理程序,该事件处理程序可以恢复 DataGrid 行而不更改相应的记录。

•

在 Visual Studio 的 Designer(设计器)视图中选择 DataGrid,并在 Properties(属性)

窗口(闪电图形)中单击 Events(事件)选项卡。双击 CancelCommand 以创建

datagrid_CancelCommand 事件处理程序。返回到 Events(事件)选项卡,并双击

 EditCommand 以创建 datagrid_EditCommand 事件处理程序。

•

将以下代码插入到这两个事件处理程序中:

private void datagrid_CancelCommand(object source, _
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
    datagrid.EditItemIndex = -1;
    ReadRecords();    
}
private void datagrid_EditCommand(object source, _
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
    datagrid.EditItemIndex = e.Item.ItemIndex;
    ReadRecords();
}
•

按 F5 键启动 Web 应用程序。

•

单击第二行左侧的 Edit(编辑)链接。DataGrid 将显示一行,并在文本框中显示 PetName 和 PetType 字段的值。Edit(编辑)链接将更改为 Update(更新)和 Cancel(取消)链接。
adon_wtaccessdb_07
图 7 在浏览器中编辑数据(已单击 Edit [编辑] 链接)

•

单击 Cancel(取消)返回到默认的 DataGrid 显示。

更新 DataGrid

选定一行进行编辑时,将显示 Update(更新)和 Cancel(取消)链接。使用文本框为数据库记录中的字段输入新值后,必须将这些更改移回数据库。

您必须将 Update(更新)链接连接到某个事件处理程序,该事件处理程序可以读取每个文本框并更新相应记录中的字段。DataGrid.DataKeyField 使用数据库表的主键字段将每行与其相应的记录相关联。您可以生成 SQL 语句来更新使用新字段值的记录,然后调用 OleDbCommand.ExecuteNonQuery 来执行更新。

•

在 Visual Studio 的 Designer(设计器)视图中,选择 DataGrid。在 Properties(属性)窗口中,将 DataKeyField 属性设置为 ID。

•

在 Properties(属性)视图(闪电图形)中单击 Events(事件)选项卡。双击 UpdateCommand 以创建 datagrid_UpdateCommand 事件处理程序。

•

将以下代码插入到该事件处理程序中:

private void datagrid_UpdateCommand(object source, 
    System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
    int ID = (int) datagrid.DataKeys[(int) e.Item.ItemIndex];
    string name = ((TextBox)e.Item.Cells[1].Controls[0]).Text;
    string type = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
    string sql = 
        "UPDATE PetTable SET PetName=/"" + name + 
        "/", PetType=/"" + type + "/"" +
        " WHERE ID=" + ID;
    ExecuteNonQuery(sql);
    datagrid.EditItemIndex = -1;
    ReadRecords();
}
•

将 ExecuteNonQuery 方法添加到 PetForm 类:

private void ExecuteNonQuery(string sql)
{
    OleDbConnection conn = null;
    try
    {
        conn = new OleDbConnection(
            "Provider=Microsoft.Jet.OLEDB.4.0; " + 
            "Data Source=" + Server.MapPath("Pets/Pets.mdb"));
        conn.Open();
        OleDbCommand cmd = 
            new OleDbCommand(sql, conn);
        cmd.ExecuteNonQuery();
    }
//  catch (Exception e)
//  {
//      Response.Write(e.Message);
//      Response.End();
//  }
    finally
    {
        if (conn != null)  conn.Close();
    }
}
•

按 F5 键启动 Web 应用程序。

•

单击第二行左侧的 Edit(编辑)链接。

•

将 PetType 文本框中的文本由“狗”更改为“犬”。

•

单击 Update(更新)链接以查看更新的 DataGrid。

向 DataGrid 添加记录

DataGrid 不支持“添加”列,但是可以使用按钮单击事件处理程序以向数据库中添加记录。可以创建 SQL 语句来添加记录,然后调用 OleDbCommand.ExecuteNonQuery 来更新数据库。

•

在 Visual Studio 的 Designer(设计器)视图中,将某个按钮从工具栏拖动到窗体并将其命名为 btnAddPet。将其文本更改为“Add Pet”。
adon_wtaccessdb_08
图 8 将添加按钮添加到 DataGrid

•

双击该按钮,并将此代码插入到 btnAddPet_Click 方法:

private void btnAddPet_Click(object sender, System.EventArgs e)
{
    string sql = "INSERT INTO PetTable (PetName, PetType)"
        + " VALUES (/"new/", /"new/")";
    ExecuteNonQuery(sql);
    ReadRecords();
}
•

按 F5 键启动 Web 应用程序。

•

单击 Add(添加)按钮。一个新行将被添加到数据库中。
adon_wtaccessdb_09
图 9 添加的新行

从 DataGrid 中删除行

您可以使用属性生成器向 DataGrid 添加 Delete(删除)列。您必须将 Delete(删除)链接连接到可以删除数据库中相应记录的事件处理程序。可以使用 DataGrid.DataKeyField 属性将要被删除的行与其相应的记录相关联。可以创建 SQL 语句来删除记录,然后调用 OleDbCommand.ExecuteNonQuery 来更新数据库。

•

在 Visual Studio 的 Designer(设计器)视图中,选择 DataGrid。

•

在 Properties(属性)窗口的最底部,选择 Property Builder(属性生成器)。

•

选择 Columns(列)视图。

•

在 Available Columns(可用列)列表中,展开 Button(按钮)列。选择 Delete(删除)选项。

单击“>”按钮将其添加到 Selected Columns(选定列)列表中。单击 OK(确定)返回到

Designer(设计器)视图。

•

选择 DataGrid,并在 Properties(属性)窗口(闪电图形)中单击 Events(事件)选项卡。

双击 DeleteCommand 以创建 datagrid_DeleteCommand 事件处理程序。

•

将以下代码插入到该事件处理程序中:

private void datagrid_DeleteCommand(object source,_
 System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
    int ID = (int) datagrid.DataKeys[(int) e.Item.ItemIndex];
      sql = "DELETE FROM PetTable WHERE ID=" + ID;
    ExecuteNonQuery(sql);
    ReadRecords();
}
•

按 F5 键启动 Web 应用程序。

•

单击最后一行右侧的 Delete(删除)按钮。该行将从数据库中删除。

C#动态创建Access数据库和数据表和获得Access数据库构架 最近学习C#数据库编程,作为初始的尝试,实现一个简单的账本程序。应用C#连接Access数据库,程序编写过程中遇到两个问题。一是动态创建Access数据库和数据表,另一个是获得Access数据库中的所有用户的表。在网上找了好久,才将两个问题基本解决。贴在下面希望对有同样需求的同志有所帮助。 1、动态创建Access数据库和数据表。 using System.Data 阅读详情

相关推荐

VB.NET学习笔记:ADO.NET操作ACCESS数据库——数据集DataSet数据管理(DataAdapter查询更新数据库)

DataAdapter与数据源提供程序相关,操作ACCESS数据库数据提供程序为OleDb.net,命名空间为System.Data.OleDb,相应的DataAdapter对象在System.Data.OleDb空间里对应的是OleDbDataAdapter对象。 而DataTable对象和DataSet对象同属于System.Data命名空间,可见其与数据源无关。DataTable对象可作为D...

zyjq52uys的博客 5461

C#动态创建Access数据库及密码的方法

以前工作中需要全新的Access数据库,可以复制数据库,也可以把新的数据库放到资源里面,用新数据库的时候释放出来,都感觉不爽,还是动态生成心理舒服。 生成数据库要使用ADO,首先添加引用。 using System.IO; using System.Data.OleDb; //连接Access数据库 using ADOX; //引用COM:Microsoft ADO Ext. 2.8 for DDL and Security //添加引用:Microsoft ActioveX Data Objects 2.8 Library 创建数据库: 然后使用ADODB创建数据库,直接看代码:

DAO 、ADO和ADO.NET

1.什么是DAO(Data Access Objects) DAO数据访问对象是一种应用程序编程接口(API),存在于微软的Visual Basic中,它允许开发者通过ODBC(Open Database Connectivity,是微软提出数据库访问接口标准)连接到Access数据库,对其进行访问。 2.什么是ADO(ActiveX Data Objects) ADO是一项微软的技术,是A

shadowyelling的专栏 1654

C# 动态创建Access数据库以及数据表

参考自:http://www.cnblogs.com/guanjinke/archive/2006/11/30/577241.html 在上一篇中说到,直接用File类的静态方法Create()方法创建具有固定格式的Access数据库文件并不成功。这里介绍正确的创建方法。 创建数据库文件: 步骤一: 在项目引用中增加COM组件:Microsoft ADO Ext. 2.8 for DDL

白永辉的专栏 7809

VB.NET学习笔记:ADO.NET操作ACCESS数据库——微软官方原版SqlHelper类

SQLHelper.vb是2004年微软发布的一个使用ADO.Net方法对SQL Server数据库进行操作的封装类。在网上贴出的SqlHelper类大多是C#版本,如果需要VB.NET版本的微软官方原版SqlHelper类,可以进行如下操作获取。 一、获取SQLHelper.vb 需要从微软官方下载Data Access Application Block for .NET v2,下载地址:ht...

zyjq52uys的博客 1067

VB.net数据库编程(08):ADO.net数据访问接口

编程语言与数据库的连接是通过一个接口,达到两者交流,以便两者谈情说爱。 一、接口种类:6种:         1、ODBC,面向C/C++。         2、DAO,   面向VB,操作ACCEss         3、RDO,上面的加强型         4、OLE DB         5、ADO,      对OLE DB的加强型        

u014366427的专栏 1515

VB.NET学习笔记:ADO.NET操作ACCESS数据库——ADO.NET数据访问接口

一、ADO.NET概述 Ado.net基于XML和离线计算模型。 ADO.net的两个核心组件:.Net数据提供程序、DataSet。 .net数据提供程序用来与数据库的连接,如SQLServer.net数据提供程序——System.Data.SqlClient, 访问SQl2000或以上版本;OleDb.net数据提供程序——System.Data.OleDb,主要访问Ac...

zyjq52uys的博客 6623

ADO技术与Access数据库操作资源包

Microsoft Access是一种关系型数据库管理系统,它由Microsoft发布,主要设计用于Windows操作系统。Access数据库因其操作简便,开发成本低,被广泛应用于小型企业的数据管理。它结合了数据存储、管理以及易于使用的界面,使得非技术用户也能够操作数据库。ActiveX Data Objects(ADO)是一种用于数据库编程的技术,它提供了一个高层次的接口,允许程序员通过编程语言轻松地操作数据库。

weixin_42601702的博客 828

使用 ADO.NET 解锁 Microsoft Access 数据

使用 ADO.NET 解锁 Microsoft Access 数据 Paul CornellMicrosoft Corporation 2001 年 12 月 6 日 Microsoft® Office 提供了多种存储和管理数据的功能和工具,例如,数据访问对象 (DAO)、ActiveX® 数据对象 (ADO)、Microsoft Word 邮件合并、Microsoft Excel Web

sonicdater的专栏 1558

VC++中使用ADO进行Access数据库操作的实例教程

本文还有配套的精品资源,点击获取 简介:本教程详细介绍了如何在VC++中使用ADO技术连接并操作Access数据库。文中首先解释了ADO技术及其在VC++中的应用,随后通过源代码实例详细阐述了实现数据库连接、执行SQL命令以及处理结果集的步骤,最后强调了关闭数据库连接的重要性。通过学习本实例,读者将能够掌握VC++环境下进行数据库应用开发的基础知识。 1. ADO...

weixin_31459297的博客 1283

C#代码创建Access数据库和表

这是一个自己做的用C#编写的用代码创建Access数据库和表的完整程序,放在在这里和大家一起分享,共同学习

C#ADO操作access(创建数据库,表,以及增,查)

C#ADO操作access数据库实例,有详细的中文注释。开发环境vs2015

C#创建ACCESS数据库和数据表

C#创建ACCESS数据库和数据表,使用ADOX创建Access数据库和表,设置主键

[VB.NET]怎么用ADO.NET创建ACCESS数据?

<!--google_ad_client = "pub-8333940862668978";/* 728x90, 创建于 08-11-30 */google_ad_slot = "4485230109";google_ad_width = 728;google_ad_height = 90;//--><script type="text/javascript"

VB.NET学习网-VB.NET实例、VB.NET教程、VB.NET源码下载 1209

在C#中使用ADO.Net部件来访问Access数据库

在C#中使用ADO.Net部件来访问Access数据库! 值得下载看看!资源免费,大家分享!! 更多免费资源 http://ynsky.download.csdn.net/

Matlab2021a破解版安装与激活实战教程(含详细步骤截图)

本文详细介绍了MATLAB R2021a的正版安装流程与核心功能优化,包括系统要求、安装步骤、性能调优及深度学习工具箱的应用。通过实战教程和代码示例,帮助用户高效搭建开发环境并掌握关键技术,特别适合工程计算与科学研究的专业人士。

vvv99的博客 461
上一篇: 在ASP.NET中如何用C#.NET实现基于表单的验证
下一篇: ADO.NET 中的 XML 特性
JavaProgramers
博客等级 码龄22年 660粉丝 304原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值