日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

简易留言簿 制作

發布時間:2024/3/12 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简易留言簿 制作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡易留言簿


現在,我們就可以使用 Linq to sql 完成簡易留言簿了。實現以下功能:


發表留言(增)

查看留言(查)

管理員回復留言(改)

管理員刪除留言(刪除)
?
首先,創建一個 Default.aspx,在頁面上加入一些控件:

?
<div>
?
姓名
?
<asp:TextBox ID="tb_UserName" runat="server"></asp:TextBox><br />


<br />


留言


<asp:TextBox ID="tb_Message" runat="server" Height="100px"


TextMode="MultiLine" Width="300px"></asp:TextBox><br />


<br />


<asp:Button ID="btn_SendMessage" runat="server" Text="發表留言"


OnClick="btn_SendMessage_Click" /><br />


<br />


<asp:Repeater ID="rpt_Message" runat="server">


<ItemTemplate>


<table width="600px" style="border:solid 1px #666666; font-size:10pt;


background-color:#f0f0f0">


<tr>


<td align="left" width="400px">


? ? ? ? ? ? ? ? ? ? ? ? <%# Eval("Message")%>


</td>


<td align="right" width="200px">


? ? ? ? ? ? ? ? ? ? ? ? <%# Eval("PostTime")%> - <%# Eval("UserName")%>





?
</td>


</tr>


<tr>


<td colspan="2" align="right">


<hr width="300px" />
?

?


管理員回復:<%# Eval("IsReplied").ToString() == "False" ? "暫無" :


Eval("Reply")%>


</td>


</tr>


</table>


<br/>


</ItemTemplate>


</asp:Repeater>


</div>


你可能很難想象,使用 Linq to sql 進行數據訪問會是這么簡單,后臺代碼:


public partial class _Default : System.Web.UI.Page


{


GuestBookDataContext ctx = new


GuestBookDataContext("server=xxx;database=GuestBook;uid=xxx;pwd=xxx");


protected void Page_Load(object sender, EventArgs e)


Beijing ZJS Express Stock Limited Company?
Address: The 11th Floor, Zhaowei Building, Jiangtai Road, Chaoyang District of Beijing.
Postcode: 100016 Name: Liu Xiaohui Email: Xiaohui_liu0406@163.com
Tel: 13488810897 ?Office: 010-84561144-1816?
Page 23 of 113?
?
? ? ? ? {?
?
if (!IsPostBack)?
?
DoNet Framework 3.5 系列
?


? ? ? ? ? ? ? ? {?


? ? ? ? ? ? ? ? ? ? ? ? SetBind();?


? ? ? ? ? ? ? ? }?


? ? ? ? }?


protected void btn_SendMessage_Click(object sender, EventArgs e)


? ? ? ? {?


tbGuestBook gb = new tbGuestBook();


gb.ID = Guid.NewGuid();


? ? ? ? gb.UserName = tb_UserName.Text;


? ? ? ? gb.Message = tb_Message.Text;


? ? ? ? gb.IsReplied = false;


? ? ? ? ? ? ? ? gb.PostTime = DateTime.Now;


? ? ? ? ctx.tbGuestBooks.Add(gb);


? ? ? ? ctx.SubmitChanges();


? ? ? ? ? ? ? ? SetBind();?


? ? ? ? }?


private void SetBind()


? ? ? ? {?






Beijing ZJS Express Stock Limited Company?
Address: The 11th Floor, Zhaowei Building, Jiangtai Road, Chaoyang District of Beijing.
Postcode: 100016 Name: Liu Xiaohui Email: Xiaohui_liu0406@163.com
Tel: 13488810897 ?Office: 010-84561144-1816?
Page 24 of 113?
?
?
DoNet Framework 3.5 系列

? ? ? ? rpt_Message.DataSource = from gb in ctx.tbGuestBooks orderby gb.PostTime


descending select gb;


? ? ? ? rpt_Message.DataBind();


? ? ? ? }?


}


前面創建 Linq to sql Classes 的時候我們輸入名字 GuestBook,系統就為我們自動創建了


GuestBookDataContext(你也可以在 GuestBook.Designer.cs 中找到類定義)。在綁定的


時候我們使用查詢句法查詢留言表中所有留言,按照發表時間倒序(天哪?這是數據訪問


嗎?好像僅僅定義了一句 SQL 啊)。在發表留言按鈕中,我們為一個 tbGuestBook 賦值,


然后把它加入留言表,再提交更改,就這樣完成了記錄的插入。

Beijing ZJS Express Stock Limited Company?
Address: The 11th Floor, Zhaowei Building, Jiangtai Road, Chaoyang District of Beijing.
Postcode: 100016 Name: Liu Xiaohui Email: Xiaohui_liu0406@163.com
Tel: 13488810897 ?Office: 010-84561144-1816?
Page 25 of 113?
?
OnItemCommand="rpt_Message_ItemCommand">


<ItemTemplate>
?
DoNet Framework 3.5 系列
?


<table width="600px" style="border:solid 1px #666666; font-size:10pt;


background-color:#f0f0f0">


<tr>


<td align="left" width="400px">


Beijing ZJS Express Stock Limited Company?
Address: The 11th Floor, Zhaowei Building, Jiangtai Road, Chaoyang District of Beijing.
Postcode: 100016 Name: Liu Xiaohui Email: Xiaohui_liu0406@163.com
Tel: 13488810897 ?Office: 010-84561144-1816?
Page 26 of 113?
?
? ? ? ? ? ? ? ? ? ? ? ? <%# Eval("Message")%>


</td>


<td align="right" width="200px">
?
DoNet Framework 3.5 系列
?
? ? ? ? ? ? ? ? ? ? ? ? <%# Eval("PostTime")%> - <%# Eval("UserName")%>


</td>


</tr>


<tr>


<td colspan="2" align="right">


<hr width="300px" />


<asp:Button ID="btn_DeleteMessage" runat="server" Text="刪除留言"


CommandName="DeleteMessage" CommandArgument='<%# Eval("ID")%>'/>


管理員回復:<asp:TextBox runat="server" ID="tb_Reply"


TextMode="MultiLine" Width="300px" Text='<%# Eval("Reply")%>'/>


<asp:Button ID="btn_SendReply" runat="server" Text="發表回復"


CommandName="SendReply" CommandArgument='<%# Eval("ID")%>'/>


</td>


</tr>


</table>


<br/>


</ItemTemplate>


</asp:Repeater>




Beijing ZJS Express Stock Limited Company?
Address: The 11th Floor, Zhaowei Building, Jiangtai Road, Chaoyang District of Beijing.
Postcode: 100016 Name: Liu Xiaohui Email: Xiaohui_liu0406@163.com
Tel: 13488810897 ?Office: 010-84561144-1816?
Page 27 of 113?
?
</div>


后臺代碼:
l class Admin : System.Web.UI.Page


{


GuestBookDataContext ctx = new
?
?


GuestBookDataContext("server=xxx;database=GuestBook;uid=xxx;pwd=xxx");

protected void Page_Load(object sender, EventArgs e)


? ? ? ? {?


if (!IsPostBack)?


? ? ? ? ? ? ? ? {?


? ? ? ? ? ? ? ? ? ? ? ? SetBind();?


? ? ? ? ? ? ? ? }?


? ? ? ? }?

private void SetBind()


? ? ? ? {?


? ? ? ? rpt_Message.DataSource = from gb in ctx.tbGuestBooks orderby gb.PostTime


descending select gb;


? ? ? ? rpt_Message.DataBind();

?
? ? ? ? }?


protected void rpt_Message_ItemCommand(object source,


RepeaterCommandEventArgs e)


? ? ? ? {?


if (e.CommandName == "DeleteMessage")


? ? ? ? ? ? ? ? {?
?

?


StreamWriter sw = new StreamWriter(Server.MapPath("log.txt"), true); ?


? ? ? ? ? ? ctx.Log = sw;


tbGuestBook gb = ctx.tbGuestBooks.Single(b => b.ID == new


Guid(e.CommandArgument.ToString()));


? ? ? ? ? ? ctx.tbGuestBooks.Remove(gb);


? ? ? ? ? ? ctx.SubmitChanges();


? ? ? ? ? ? ? ? ? ? ? ? SetBind();?


? ? ? ? ? ? ? ? ? ? ? ? sw.Close();?


? ? ? ? ? ? ? ? }?


if (e.CommandName == "SendReply")


? ? ? ? ? ? ? ? {?


StreamWriter sw = new StreamWriter(Server.MapPath("log.txt"), true); ?


? ? ? ? ? ? ctx.Log = sw;


tbGuestBook gb = ctx.tbGuestBooks.Single(b => b.ID == new


Guid(e.CommandArgument.ToString()));

?
?
DoNet Framework 3.5 系列


? ? ? ? ? ? ? ? ? ? ? ? gb.Reply = ((TextBox)e.Item.FindControl("tb_Reply")).Text;


? ? ? ? ? ? gb.IsReplied = true;


? ? ? ? ? ? ctx.SubmitChanges();


? ? ? ? ? ? ? ? ? ? ? ? SetBind();?


? ? ? ? ? ? ? ? ? ? ? ? sw.Close();?


? ? ? ? ? ? ? ? }?


? ? ? ? }?


}


在這里,我們通過 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]



-- @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


總結

以上是生活随笔為你收集整理的简易留言簿 制作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。