★搜Asp.net★(www.soAsp.net),为专业技术文档网站。
包括Asp.net开发技术文档·C#开发技术文档·Access/SQL Server数据库开发技术文档·VB.NET开发技术文档。
还包括·项目实战经验总结·开发经验技巧总结·项目开发心得。
精通LINQ技术-修改数据库中的数据

  使用LINQ to SQL修改数据库中的数据的功能一般的实现步骤如下:

1)使用LINQ查询找到被修改的记录。

2)修改记录的值。

3)调用SubmitChanges()方法将上述修改提交到数据库,并完成修改操作。

修改数据库中的数据的功能由Sample_08应用程序中的UpdateData.aspx页面实现,它的代码隐藏文件为UpdateData.aspx.cs

1.创建UpdateData.aspx页面

UpdateData.aspx页面上创建一个GridView控件和一个Button控件,它们的ID属性的值分别为gvDatabtnUpdateUpdateData.aspx页面的HTML设计代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="UpdateData.aspx.cs" Inherits="UpdateData" %>

<head runat="server"><title>修改数据库中的数据</title></head>

<asp:GridView ID="gvData" runat="server"></asp:GridView>

<asp:Button ID="btnUpdate" runat="server" Text="修改ID值等于4的角色的名称" onclick="btnUpdate_Click" />

2UpdateData.aspx页面初始化

UpdateData.aspx页面初始化功能由其Page_Load(object sender, EventArgs e)事件实现。该事件调用ShowData()函数使用LINQ语句查询Role表中的记录,并显示在gvData控件中。其中,查询数据的LINQ查询表达式为“from r in db.Role select r”。Page_Load(object sender, EventArgs e)事件和ShowData()函数的程序代码如下:

using System.Data.Linq;

using System.Collections.Generic;

protected void Page_Load(object sender, EventArgs e)

{

if (!Page.IsPostBack){ShowData();}

}

private void ShowData()

{   ///创建LinqDB数据库的数据上下文的实例

LinqDBDataContext db = new LinqDBDataContext(LinqSystem.LinqDBConnectionString);

///获取所有角色

var result = from r in db.Role

select r;

///绑定控件数据,并显示数据

gvData.DataSource = result;

gvData.DataBind();

}

3.修改数据

修改数据的功能由UpdateData.aspx页面中的【修改ID值等于4的角色的名称】按钮(btnUpdate控件)实现,该按钮触发其Click事件btnUpdate_Click(object sender,EventArgs e)。该事件调用UpdateDataWithLINQ()函数实现修改数据的功能,具体步骤如下。

1)创建LinqDBDataContext类的实例db

2)使用LINQ查询ID列的值等于4的记录,查询结果保存在result变量中。

3)使用foreach语句修改result变量中所有记录的RoleName属性的值。

4)调用SubmitChanges()方法将上述修改提交到数据库,并实现修改数据的功能。

btnUpdate_Click(object sender,EventArgs e)事件和UpdateDataWithLINQ()函数的程序代码如下:

private void UpdateDataWithLINQ()

{   ///创建LinqDB数据库的数据上下文的实例

LinqDBDataContext db = new LinqDBDataContext(LinqSystem.LinqDBConnectionString);

///查询被修改的数据

var result = from r in db.Role

where r.ID == 4

select r;

///修改数据

foreach (Role r in result){r.RoleName = "New Role " + DateTime.Now.ToShortTimeString();}

///将修改操作提交到数据库中

db.SubmitChanges();

}

protected void btnUpdate_Click(object sender,EventArgs e)

{

UpdateDataWithLINQ();ShowData();

}

UpdateData.aspx页面设置为Sample_08应用程序的起始页面,并运行Sample_08应用程序。UpdateData.aspx页面的初始化界面如图所示,此时,该页面显示Role表中的记录。单击【修改ID值等于4的角色的名称】按钮,UpdateData.aspx页面将修改ID值等于4的记录的名称,并显示修改操作之后的Role表中的记录,如图所示。