linq中文教程(十二)

前面创建Linq to sql Classes的时候我们输入名字GuestBook,系统就为我们自动创建了GuestBookDataContext(你也可以在GuestBook.Designer.cs中找到类定义)。在绑定的时候我们使用查询句法查询留言表中所有留言,按照发表时间倒序(天哪?这是数据访问吗?好像仅仅定义了一句SQL啊)。在发表留言按钮中,我们为一个tbGuestBook赋值,然后把它加入留言表,再提交更改,就这样完成了记录的插入。

       运行效果如下图:

       然后,再创建一个Admin.aspx,前台代码如下:



<div>
         <asp:Repeater ID="rpt_Message" runat="server" OnItemCommand="rpt_Message_ItemCommand">
         <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" />
             <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>
     </div>

       后台代码:




public partial 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()));
             gb.Reply = ((TextBox)e.Item.FindControl("tb_Reply")).Text;
             gb.IsReplied = true;
             ctx.SubmitChanges();
             SetBind();
             sw.Close();
         }
     }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值