Linq to SQL 简单的增删改操作
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();
}
}
Linq to SQL 简单的增删改操作的更多相关文章
- SQL -------- 简单的增删改查
sql 结构化查询语言,一种ansi 的标准计算机语言,为了访问数据库 可以做什么:可以对数据库 和表进行创建于删除, 对表里面的数据进行增删改查. 也可以创建存储过程和视图,对表设置权限 RDBM ...
- LinQ to sql简介及增删改查
Linq to sql 类 LinQ它就是一个集成化的数据库访问类,它会自动生成许多原本需要我们自己创建的东西: 它和ADO.NET是一样的东西,都是为了访问数据库而出现的,EF框架 一.创建LinQ ...
- SQL Server之增删改操作
-------添加约束.增删改 use StudentDB2 go --------创建学生表--------- create table StudentInfo( --studentId int p ...
- MVC 学习(二)之Linq to Sql 简单Demo
Linq to Entities 已经我的一篇博文中阐述了,这里阐述一下简单的Linq to Sql 的增删改查.Linq to sql 与Linq to Entities虽然同属于DataBase- ...
- ASP.NET MVC深入浅出(被替换) 第一节: 结合EF的本地缓存属性来介绍【EF增删改操作】的几种形式 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery ) 第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法 第六节: EF高级属性(二) 之延迟加载、立即加载、显示加载(含导航属性) 第十节: EF的三种追踪
ASP.NET MVC深入浅出(被替换) 一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态 ...
- C#+Access 员工信息管理--简单的增删改查操作和.ini配置文件的读写操作。
1.本程序的使用的语言是C#,数据库是Access2003.主要是对员工信息进行简单的增删改查操作和对.ini配置文件的读写操作. 2.代码运行效果如下: 功能比较简单.其中在得到查询结果后,在查询结 ...
- python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删改查操作
1.通过 pip 安装 pymysql 进入 cmd 输入 pip install pymysql 回车等待安装完成: 安装完成后出现如图相关信息,表示安装成功. 2.测试连接 import ...
- python操作三大主流数据库(2)python操作mysql②python对mysql进行简单的增删改查
python操作mysql②python对mysql进行简单的增删改查 1.设计mysql的数据库和表 id:新闻的唯一标示 title:新闻的标题 content:新闻的内容 created_at: ...
- 使用JDBC分别利用Statement和PreparedStatement来对MySQL数据库进行简单的增删改查以及SQL注入的原理
一.MySQL数据库的下载及安装 https://www.mysql.com/ 点击DOWNLOADS,拉到页面底部,找到MySQL Community(GPL)Downloads,点击 选择下图中的 ...
随机推荐
- STM32F207 两路ADC连续转换及GPIO模拟I2C给MT9V024初始化参数
1.为了更好的方便调试,串口必须要有的,主要打印一些信息,当前时钟.转换后的电压值和I2C读出的数据. 2.通过GPIO 模拟I2C对镁光的MT9V024进行参数初始化.之前用我以前公司SP0A19芯 ...
- android:onKeyDown
android项目中的返回键有时处理不当,会是一个十分麻烦的问题. 在监听物理键时,可以用onKeyDown方法,Activity已经自己有KeyEvent.Callback这个接口了,因为项目有使用 ...
- 一个字符串搜索的Aho-Corasick算法
Aho和Corasick对KMP算法(Knuth–Morris–Pratt algorithm)进行了改进,Aho-Corasick算法(Aho-Corasick algorithm)利用构建树,总时 ...
- postfix防垃圾邮件
Postfix 2.x 打开/etc/postfix/main.cf文件,在其中增加如下的几行(如果相关的配置存在,就替换之): vi /etc/postfix/main.cf [...] smtpd ...
- 如何修改android工程的包名?
在我们android项目开发到一定的程度时由于需要,我们必须修改一下工程的包名,以便更好的发布我们的项目.但是在这个过程中有时候修改好了之后会出现一些错误.下面由小编一步步教你如何更改包名,和解决出现 ...
- SLF4JLoggerContext cannot be cast to LoggerContext
Getting Exception org.apache.logging.slf4j.SLF4JLoggerContext cannot be cast to org.apache.logging.l ...
- ubuntu 安装LNMP
How To Install Linux, nginx, MySQL, PHP (LEMP) stack on Ubuntu 12.04 PostedJune 13, 2012 802.8kviews ...
- 准备着手学习python
1. python 的框架 Tornado 网址: http://www.tornadoweb.org/en/stable/ github: https://github.com/tornadoweb ...
- TextureView+SurfaceTexture+OpenGL ES来播放视频(三)
引自:http://www.jianshu.com/p/291ff6ddc164 做好的Demo截图 opengl-video 前言 讲了这么多,可能有人要问了,播放视频用个android封装的Vid ...
- Hibernate 系列教程7-双向一对一
双向一对一 一对一主要用在 一个一方需要的信息比较少,比如注册的登录信息 另一个一方存储的信息比较多,比如注册之后用户填写的详细信息 实现方式常用的主要有2种: java模型都是一样,其中一个映射文件 ...