科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道[冷枫]通过 ADO.NET 操纵 Access 数据库

[冷枫]通过 ADO.NET 操纵 Access 数据库

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本演练说明了如何使用简单的 Visual C

作者:冷枫 来源:CSDN 2007年9月24日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

配置数据库

默认情况下,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(删除)按钮。该行将从数据库中删除。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=356361

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章