ASP.NET4.0 LINQ  更新数据
用LINQ更新数据非常类似于插入数据。首先应获得要更新的指定对象。为此,可以使用要更新的集合的Single方法。Single标量方法根据其输入参数从集合中返回一个对象。如果有多个记录匹配该参数,Single方法只返回第一个匹配的记录。
有了要更新的记录后,只需修改对象的属性值,再调用数据上下文的SubmitChanges方法即可。下面是一个更新BookInfo表的实例,代码如下所示。
文件名:LinqUpdate.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="LinqUpdate.aspx.cs" Inherits="LinqUpdate" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="/1999/xhtml">
<head runat="server">
    <title>LINQ更新数据</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
    </div>
    </form>
</body>
</html>
文件名:LinqUpdate.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class LinqUpdate : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
asp数据        DataClassesDataContext data = new DataClassesDataContext();  //使用 LINQ 类
        //更新数据
        BookInfo book =
        data.BookInfo.Single(c => c.BookName == "ASP基础教程");
        book.writer= "张三";
        data.SubmitChanges();
        //查询修改数据
        var s = from n in data.BookInfo where n.BookName == "ASP基础教程" select n;  //执
行查询
        foreach (var t in s)
        {
            Label1.Text += "书名:" + t.BookName.ToString() + "<br />" +
                          "作者:" + t.writer.ToString() + "<br />" +
                          "价格:" + t.price.ToString() +
                          "<hr/>";
        }
    }
}
执行上述代码中,结果如图9-19所示。
图9-19  更新数据
LINQ to SQL还包含和使用默认的优化并发功能。这意味着如果两个用户从数据库中检索出了相同的记录,并试图更新它,第一个将其更新操作提交给服务器的用户就会胜出。如果第二个用户试图在第一个用户之后更新记录,LINQ to SQL就会检测到原始记录已更新,从而引发一个ChangConflictException

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。