一步一步學linq to sql 三 增刪改

2022-02-10 02:21:23 字數 2997 閱讀 9124

示例資料庫

欄位名字段型別

允許空欄位說明

iduniqueidentifier

表主鍵字段

username

varchar(50)

posttime

datetime

message

varchar(400)

isreplied

bitreply

varchar(400)

在資料庫中建立乙個名為guestbook的資料庫,在裡面建立乙個tbguestbook的表,結構如上表。

生成實體類

那麼,我們就在伺服器資源管理器中建立乙個指向guestbook資料庫的資料連線,然後把tbguestbook表拖動到guestbook.dbml的設計檢視上,按ctrl+s儲存。開啟guestbook.designer.cs可以發現系統自動建立了guestbook資料庫中tbguestbook表的對映,如下圖:

首先,建立乙個default.aspx,在頁面上加入一些控制項:

姓名<%# eval("message")%>

<%# eval("posttime")%> - <%# eval("username")%>

管理員回覆:<%# eval("isreplied").tostring() == "false" ? "暫無" : eval("reply")%>

你可能很難想象,使用linq to sql進行資料訪問會是這麼簡單,後台**:

public partial class _default : system.web.ui.page

}protected void btn_sendmessage_click(object sender, eventargs e)

private void setbind()

執行效果如下圖:

然後,再建立乙個admin.aspx,前台**如下:

<%# eval("message")%>

<%# eval("posttime")%> - <%# eval("username")%>

管理員回覆:'/>

'/>

後台**:

public partial class admin : system.web.ui.page

}private void setbind()

protected void rpt_message_itemcommand(object source, repeatercommandeventargs e)

if (e.commandname == "sendreply")}}

執行效果如下圖:

在這裡,我們通過single方法獲取一條記錄,也就是乙個tbguestbook例項,更新了一些屬性後儲存也就完成了改這個操作。刪除操作更簡單,只需要從表中移除物件。你是不是覺得好像不是在運算元據庫,像在操作記憶體中的物件。

由於寫了日誌,看看改和刪操作會是怎麼樣的sql?

update [dbo].[tbguestbook]

set [isreplied] = @p4, [reply] = @p5

where

([id] = @p0) and ([username] = @p1) and ([posttime] = @p2) and

([message] = @p3) and (not ([isreplied] = 1)) and ([reply] is null)

-- @p0: input guid (size = 0; prec = 0; scale = 0) [00000000-0000-0000-0000-000000000000]

-- @p1: input string (size = 4; prec = 0; scale = 0) [ghgh]

-- @p2: input datetime (size = 0; prec = 0; scale = 0) [2007-8-16 10:20:09]

-- @p3: input string (size = 3; prec = 0; scale = 0) [ghj]

-- @p4: input boolean (size = 0; prec = 0; scale = 0) [true]

-- @p5: input string (size = 3; prec = 0; scale = 0) [qqq]

-- context: sqlprovider(sql2005) model: attributedmetamodel build: 3.5.20706.1

delete

from [dbo].[tbguestbook] where ([id] = @p0) and ([username] = @p1) and

([posttime] = @p2) and ([message] = @p3) and (not ([isreplied] = 1)) and

([reply] = @p4)

-- @p0: input guid (size = 0; prec = 0; scale = 0) [158ec941-13ff-4093-bd8b-9fceae152171]

-- @p1: input string (size = 2; prec = 0; scale = 0) [44]

-- @p2: input datetime (size = 0; prec = 0; scale = 0) [2007-8-16 9:56:19]

-- @p3: input string (size = 2; prec = 0; scale = 0) [44]

-- @p4: input string (size = 3; prec = 0; scale = 0) [222]

-- context: sqlprovider(sql2005) model: attributedmetamodel build: 3.5.20706.1

今天就講到這裡,下次將系統介紹查詢句法。

一步一步學Linq to sql

一步一步學linq to sql 一 預備知識 一步一步學linq to sql 二 datacontext與實體 一步一步學linq to sql 三 增刪改 一步一步學linq to sql 四 查詢句法 一步一步學linq to sql 五 儲存過程 一步一步學linq to sql 六 特性...

一步一步學Linq to sql 一 預備知識

什麼是linq to sql linq to sql 或者叫 dlinq 是linq net 語言整合查詢 的一部分,全稱基於關係資料的 net 語言整合查詢,用於以物件形式管理關係資料,並提供了豐富的查詢功能,它和 linq to xml linq to objects linq to datas...

一步一步學Linq to sql(一) 預備知識

從今天起將推出新手講堂,首先從linq開始詳細講解。一步一步學 linq to sql 一 預備知識 什麼是linq to sql linq to sql 或者叫dlinq 是linq net語言整合查詢 的一部分,全稱基於關係資料的 net 語言整合查詢,用於以物件形式管理關係資料,並提供了豐富的...