zoukankan      html  css  js  c++  java
  • LInqToSql 增删改

    此文章出处来源于网络,本人稍作修改

    首先在新建项目里面建立Linq To Sql 类dbml,将数据库连接到VS上面

    然后将要使用的表,直接拖到dbml类上面,保存

    这样会生成LinqToSql所需的实体类

    新建数据表:

    客户端留言显示效果:

    后台管理留言效果:

    前台添加

    前台页面:

     1    <div>
     2 
     3         姓名
     4 
     5         <asp:TextBox ID="tb_UserName" runat="server"></asp:TextBox><br />
     6 
     7         <br />
     8 
     9         留言
    10 
    11         <asp:TextBox ID="tb_Message" runat="server" Height="100px" TextMode="MultiLine" Width="300px"></asp:TextBox><br />
    12 
    13         <br />
    14 
    15         <asp:Button ID="btn_SendMessage" runat="server" Text="发表留言" OnClick="btn_SendMessage_Click" /><br />
    16 
    17         <br />
    18 
    19         <asp:Repeater ID="rpt_Message" runat="server">
    20 
    21         <ItemTemplate>
    22 
    23         <table width="600px" style="border:solid 1px #666666; font-size:10pt; background-color:#f0f0f0">
    24 
    25             <tr>
    26 
    27             <td align="left" width="400px">
    28 
    29             <%# Eval("Message")%>
    30 
    31             </td>
    32 
    33             <td align="right" width="200px">
    34 
    35             <%# Eval("PostTime")%> - <%# Eval("UserName")%>
    36 
    37             </td>
    38 
    39             </tr>
    40 
    41             <tr>
    42 
    43             <td colspan="2" align="right">
    44 
    45             <hr width="300px" />
    46 
    47             管理员回复:<%# Eval("IsReplied").ToString() == "False" ? "暂无" : Eval("Reply")%>
    48 
    49             </td>
    50 
    51             </tr>           
    52 
    53         </table>
    54 
    55         <br/>
    56 
    57         </ItemTemplate>
    58 
    59         </asp:Repeater>
    60 
    61     </div>

    后台代码:

     1    public partial class SendMessage : System.Web.UI.Page
     2     {
     3         GuestBookDataContext ctx = new GuestBookDataContext("server=HAPPY-PC;database=XinShiDai4.13;uid=sa;pwd=happy");
     4         protected void Page_Load(object sender, EventArgs e)
     5         {
     6             if (!Page.IsPostBack)
     7             {
     8                 SetBind();
     9             }
    10         }
    11         /// <summary>
    12         /// 添加
    13         /// </summary>
    14         /// <param name="sender"></param>
    15         /// <param name="e"></param>
    16         protected void btn_SendMessage_Click(object sender, EventArgs e)
    17         {
    18             tbGuestBook gb = new tbGuestBook();
    19 
    20             gb.ID = Guid.NewGuid().ToString();
    21 
    22             gb.UserName = tb_UserName.Text;
    23 
    24             gb.Message = tb_Message.Text;
    25 
    26             gb.IsReplied = false;
    27 
    28             gb.PostTime = DateTime.Now;
    29 
    30             //调用插入方法,写入数据库
    31             ctx.tbGuestBook.InsertOnSubmit(gb);
    32 
    33             ctx.SubmitChanges();
    34 
    35 
    36             SetBind();
    37 
    38 
    39         }
    40         private void SetBind()
    41         {
    42 
    43             rpt_Message.DataSource = from gb in ctx.tbGuestBook orderby gb.PostTime descending select gb;
    44 
    45             rpt_Message.DataBind();
    46 
    47 
    48         }
    49 
    50     }

    =================================================================================================

    后台删除和修改:

    注:有可能会有更新冲突,解决方法,将出主键之外的字段明上面添加 UpdateCheck = UpdateCheck.Never

    前台:

     1     <div>
     2 
     3         <asp:Repeater ID="rpt_Message" runat="server" OnItemCommand="rpt_Message_ItemCommand">
     4 
     5         <ItemTemplate>
     6 
     7         <table width="600px" style="border:solid 1px #666666; font-size:10pt; background-color:#f0f0f0">
     8 
     9             <tr>
    10 
    11             <td align="left" width="400px">
    12 
    13             <%# Eval("Message")%>
    14 
    15             </td>
    16 
    17             <td align="right" width="200px">
    18 
    19             <%# Eval("PostTime")%> - <%# Eval("UserName")%>
    20 
    21             </td>
    22 
    23             </tr>
    24 
    25             <tr>
    26 
    27             <td colspan="2" align="right">
    28 
    29             <hr width="300px" />
    30 
    31             <asp:Button ID="btn_DeleteMessage" runat="server" Text="删除留言" CommandName="DeleteMessage" CommandArgument='<%# Eval("ID")%>'/>
    32 
    33             管理员回复:<asp:TextBox runat="server" ID="tb_Reply" TextMode="MultiLine" Width="300px" Text='<%# Eval("Reply")%>'/>
    34 
    35             <asp:Button ID="btn_SendReply" runat="server" Text="发表回复" CommandName="SendReply" CommandArgument='<%# Eval("ID")%>'/>
    36 
    37             </td>
    38 
    39             </tr>           
    40 
    41         </table>
    42 
    43         <br/>
    44 
    45         </ItemTemplate>
    46 
    47         </asp:Repeater>
    48 
    49     </div>

    后台:

     1  public partial class Admin : System.Web.UI.Page
     2     {
     3         GuestBookDataContext ctx = new GuestBookDataContext("server=HAPPY-PC;database=XinShiDai4.13;uid=sa;pwd=happy");
     4         protected void Page_Load(object sender, EventArgs e)
     5         {
     6             if (!Page.IsPostBack)
     7             {
     8                 SetBind();
     9             }
    10         }
    11         /// <summary>
    12         /// 绑定
    13         /// </summary>
    14         private void SetBind()
    15         {
    16 
    17             rpt_Message.DataSource = from gb in ctx.tbGuestBook orderby gb.PostTime descending select gb;
    18 
    19             rpt_Message.DataBind();
    20 
    21         }
    22         /// <summary>
    23         /// 删除
    24         /// </summary>
    25         /// <param name="source"></param>
    26         /// <param name="e"></param>
    27         protected void rpt_Message_ItemCommand(object source, RepeaterCommandEventArgs e)
    28         {
    29 
    30             if (e.CommandName == "DeleteMessage")
    31             {
    32 
    33                 StreamWriter sw = new StreamWriter(Server.MapPath("log.txt"), true);
    34 
    35                 ctx.Log = sw;
    36                 //查询当前Id的表对象
    37                 tbGuestBook gb = ctx.tbGuestBook.Single(b => b.ID == new Guid(e.CommandArgument.ToString()).ToString());
    38                 //调用删除对象
    39                 ctx.tbGuestBook.DeleteOnSubmit(gb);
    40 
    41                 //提交更改(必须调用此方法)
    42                 ctx.SubmitChanges();
    43 
    44 
    45                 SetBind();
    46 
    47                 sw.Close();
    48 
    49             }
    50             //更新
    51             if (e.CommandName == "SendReply")
    52             {
    53 
    54                 StreamWriter sw = new StreamWriter(Server.MapPath("log.txt"), true);
    55 
    56                 ctx.Log = sw;
    57                 //查询要更新的对象
    58                 tbGuestBook gb = ctx.tbGuestBook.Single(b => b.ID == new Guid(e.CommandArgument.ToString()).ToString());
    59                 //赋值
    60                 gb.Reply = ((TextBox)e.Item.FindControl("tb_Reply")).Text;
    61 
    62                 gb.IsReplied = true;
    63                 //提交更新
    64                 ctx.SubmitChanges();
    65 
    66                 SetBind();
    67 
    68                 sw.Close();
    69 
    70             }
    71 
    72         }
    73     }
  • 相关阅读:
    (4.21)SQL Server数据库启动过程(用户数据库加载过程的疑难杂症)
    (4.20)SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧
    sql server常用性能计数器
    阿里云教程
    (2.7)Mysql之SQL基础——表的操作与查看
    配置公网的域名绑定IP
    VisualSVN Server 从此告别SVN记事本配置
    Bluestacks 安卓模拟器利器
    f.lux亮度自动改变
    开发以及需求分析误区陷阱汇总
  • 原文地址:https://www.cnblogs.com/happygx/p/2455792.html
Copyright © 2011-2022 走看看