Linq to SQL 简单的增删改操作
2013-06-27 11:27
316 查看
Linq to SQL 简单的增删改操作。
新建数据库表tbGuestBook.结构如下:
新建web项目,完成相应的dbml文件。留言页面布局如下
<body>
<form
id="form1"
runat="server">
<asp:TextBox
ID="tb_UserName"
runat="server"></asp:TextBox>
姓名<br
/>
<asp:TextBox
ID="tb_Message"
runat="server" Rows="6"
TextMode="MultiLine"></asp:TextBox>
留言<br
/>
<asp:Button
ID="btn_SendMessage"
runat="server"
Text="发表留言"
onclick="btn_SendMessage_Click"
/>
<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"
/>
管理员回复:<%# Eval("IsReplied").ToString() ==
"False" ? "暂无" : Eval("Reply")%>
</td>
</tr>
</table>
<br
/>
</ItemTemplate>
</asp:Repeater>
</div>
</form>
</body>
后台代码实现:
DataGuestBookDataContext content =
new DataGuestBookDataContext("Data Source=10.1.0.1;Initial Catalog=app;Persist Security Info=True;User ID=sa;Password=XXX");
protected
void Page_Load(object sender,
EventArgs e)
{
if (!IsPostBack)
{
bindRepter();
}
}
private
void bindRepter()
{
Table<tbGuestBook> tb = content.GetTable<tbGuestBook>();
this.rpt_Message.DataSource =
from s in tb
orderby s.PostTime descending
select s;
this.rpt_Message.DataBind();
}
protected
void rpt_Message_ItemCommand(object source,
RepeaterCommandEventArgs e)
{}
protected
void btn_SendMessage_Click(object sender,
EventArgs e)
{
tbGuestBook book =
new tbGuestBook();
book.ID = Guid.NewGuid().ToString();
book.UserName = this.tb_UserName.Text;
book.PostTime = DateTime.Now;
book.Message = this.tb_Message.Text;
book.IsReplied = false;
//以下:插入数据到库表!
content.tbGuestBook.InsertOnSubmit(book);
content.SubmitChanges();
bindRepter();
}
新建管理员删除留言和回复留言的页面,布局如下:
<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>
管理员后台实现,主要区别在于repeater行项目的操控,其他一样:
protected
void rpt_Message_ItemCommand(object source,
RepeaterCommandEventArgs e)
{
if (e.CommandName ==
"DeleteMessage")
{
StreamWriter sw =
new StreamWriter(Server.MapPath("log_delete.txt"),
true);
content.Log = sw;
tbGuestBook del_book = content.tbGuestBook.Single(p => p.ID == e.CommandArgument.ToString());
content.tbGuestBook.DeleteOnSubmit(del_book);
content.SubmitChanges();
setbind();
sw.Close();
}
else
if (e.CommandName == "SendReply")
{
StreamWriter sw =
new StreamWriter(Server.MapPath("log_update.txt"),
true);
content.Log = sw;
tbGuestBook up_book = content.tbGuestBook.Single(p => p.ID == e.CommandArgument.ToString());
up_book.Reply = ((TextBox)e.Item.FindControl("tb_Reply")).Text;
up_book.IsReplied = true;
content.SubmitChanges();
setbind();
sw.Close();
}
}
新建数据库表tbGuestBook.结构如下:
新建web项目,完成相应的dbml文件。留言页面布局如下
<body>
<form
id="form1"
runat="server">
<asp:TextBox
ID="tb_UserName"
runat="server"></asp:TextBox>
姓名<br
/>
<asp:TextBox
ID="tb_Message"
runat="server" Rows="6"
TextMode="MultiLine"></asp:TextBox>
留言<br
/>
<asp:Button
ID="btn_SendMessage"
runat="server"
Text="发表留言"
onclick="btn_SendMessage_Click"
/>
<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"
/>
管理员回复:<%# Eval("IsReplied").ToString() ==
"False" ? "暂无" : Eval("Reply")%>
</td>
</tr>
</table>
<br
/>
</ItemTemplate>
</asp:Repeater>
</div>
</form>
</body>
后台代码实现:
DataGuestBookDataContext content =
new DataGuestBookDataContext("Data Source=10.1.0.1;Initial Catalog=app;Persist Security Info=True;User ID=sa;Password=XXX");
protected
void Page_Load(object sender,
EventArgs e)
{
if (!IsPostBack)
{
bindRepter();
}
}
private
void bindRepter()
{
Table<tbGuestBook> tb = content.GetTable<tbGuestBook>();
this.rpt_Message.DataSource =
from s in tb
orderby s.PostTime descending
select s;
this.rpt_Message.DataBind();
}
protected
void rpt_Message_ItemCommand(object source,
RepeaterCommandEventArgs e)
{}
protected
void btn_SendMessage_Click(object sender,
EventArgs e)
{
tbGuestBook book =
new tbGuestBook();
book.ID = Guid.NewGuid().ToString();
book.UserName = this.tb_UserName.Text;
book.PostTime = DateTime.Now;
book.Message = this.tb_Message.Text;
book.IsReplied = false;
//以下:插入数据到库表!
content.tbGuestBook.InsertOnSubmit(book);
content.SubmitChanges();
bindRepter();
}
新建管理员删除留言和回复留言的页面,布局如下:
<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>
管理员后台实现,主要区别在于repeater行项目的操控,其他一样:
protected
void rpt_Message_ItemCommand(object source,
RepeaterCommandEventArgs e)
{
if (e.CommandName ==
"DeleteMessage")
{
StreamWriter sw =
new StreamWriter(Server.MapPath("log_delete.txt"),
true);
content.Log = sw;
tbGuestBook del_book = content.tbGuestBook.Single(p => p.ID == e.CommandArgument.ToString());
content.tbGuestBook.DeleteOnSubmit(del_book);
content.SubmitChanges();
setbind();
sw.Close();
}
else
if (e.CommandName == "SendReply")
{
StreamWriter sw =
new StreamWriter(Server.MapPath("log_update.txt"),
true);
content.Log = sw;
tbGuestBook up_book = content.tbGuestBook.Single(p => p.ID == e.CommandArgument.ToString());
up_book.Reply = ((TextBox)e.Item.FindControl("tb_Reply")).Text;
up_book.IsReplied = true;
content.SubmitChanges();
setbind();
sw.Close();
}
}
相关文章推荐
- Linq To Sql模式中自动生成T-SQL增删改操作系列~PropertyChanged事件实现在子类中记录属性的变化,在基类中进行统一处理
- c#写webservice快速链接到数据库的方法Linq to Sql简单操作
- (原创)LINQ To SQL简单入门
- LINQ to Sql系列二 简单查询和联接查询
- LINQ to SQL 基本数据操作
- 一步一步学Linq to sql(三):增删改
- Linq to sql(三):增删改
- [导入]Silverlight 2 (beta1)数据操作(5)——使用LINQ to SQL进行数据CRUD操作(上)
- 一步一步学Linq to sql(三):增删改 (非原创)
- LINQ to SQL更新数据库操作
- LINQ To SQL在N层应用程序中的CUD操作、批量删除、批量更新
- LINQ to SQL更新数据库操作
- 简单测试linq to sql性能
- 神兵利器——使用LINQ to SQL检索和操作数据库
- LINQtosqllinqtoxml\JS操作JSON
- linq to sql 查询操作(3):Insert/Update/Delete操作
- 一步一步学Linq to sql(三):增删改
- asp.net MVC + linq to Entity简单教程(二)MVC的简单操作
- LINQ to SQL 简单查询
- 一步一步学Linq to sql(三):增删改