Linq to SQL 简单的增删改操作。

新建数据库表tbGuestBook.结构如下:

新建web项目,完成相应的dbml文件。留言页面布局如下

<body>

<form
id="form1"
runat="server">

<asp:TextBox
ID="tb_UserName"
runat="server"></asp:TextBox>

&nbsp;姓名<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 简单的增删改操作的更多相关文章

  1. SQL -------- 简单的增删改查

    sql  结构化查询语言,一种ansi 的标准计算机语言,为了访问数据库 可以做什么:可以对数据库 和表进行创建于删除, 对表里面的数据进行增删改查. 也可以创建存储过程和视图,对表设置权限 RDBM ...

  2. LinQ to sql简介及增删改查

    Linq to sql 类 LinQ它就是一个集成化的数据库访问类,它会自动生成许多原本需要我们自己创建的东西: 它和ADO.NET是一样的东西,都是为了访问数据库而出现的,EF框架 一.创建LinQ ...

  3. SQL Server之增删改操作

    -------添加约束.增删改 use StudentDB2 go --------创建学生表--------- create table StudentInfo( --studentId int p ...

  4. MVC 学习(二)之Linq to Sql 简单Demo

    Linq to Entities 已经我的一篇博文中阐述了,这里阐述一下简单的Linq to Sql 的增删改查.Linq to sql 与Linq to Entities虽然同属于DataBase- ...

  5. ASP.NET MVC深入浅出(被替换) 第一节: 结合EF的本地缓存属性来介绍【EF增删改操作】的几种形式 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery ) 第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法 第六节: EF高级属性(二) 之延迟加载、立即加载、显示加载(含导航属性) 第十节: EF的三种追踪

    ASP.NET MVC深入浅出(被替换)   一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态 ...

  6. C#+Access 员工信息管理--简单的增删改查操作和.ini配置文件的读写操作。

    1.本程序的使用的语言是C#,数据库是Access2003.主要是对员工信息进行简单的增删改查操作和对.ini配置文件的读写操作. 2.代码运行效果如下: 功能比较简单.其中在得到查询结果后,在查询结 ...

  7. python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删改查操作

    1.通过 pip 安装 pymysql 进入 cmd  输入  pip install pymysql   回车等待安装完成: 安装完成后出现如图相关信息,表示安装成功. 2.测试连接 import ...

  8. python操作三大主流数据库(2)python操作mysql②python对mysql进行简单的增删改查

    python操作mysql②python对mysql进行简单的增删改查 1.设计mysql的数据库和表 id:新闻的唯一标示 title:新闻的标题 content:新闻的内容 created_at: ...

  9. 使用JDBC分别利用Statement和PreparedStatement来对MySQL数据库进行简单的增删改查以及SQL注入的原理

    一.MySQL数据库的下载及安装 https://www.mysql.com/ 点击DOWNLOADS,拉到页面底部,找到MySQL Community(GPL)Downloads,点击 选择下图中的 ...

随机推荐

  1. STM32F207 两路ADC连续转换及GPIO模拟I2C给MT9V024初始化参数

    1.为了更好的方便调试,串口必须要有的,主要打印一些信息,当前时钟.转换后的电压值和I2C读出的数据. 2.通过GPIO 模拟I2C对镁光的MT9V024进行参数初始化.之前用我以前公司SP0A19芯 ...

  2. android:onKeyDown

    android项目中的返回键有时处理不当,会是一个十分麻烦的问题. 在监听物理键时,可以用onKeyDown方法,Activity已经自己有KeyEvent.Callback这个接口了,因为项目有使用 ...

  3. 一个字符串搜索的Aho-Corasick算法

    Aho和Corasick对KMP算法(Knuth–Morris–Pratt algorithm)进行了改进,Aho-Corasick算法(Aho-Corasick algorithm)利用构建树,总时 ...

  4. postfix防垃圾邮件

    Postfix 2.x 打开/etc/postfix/main.cf文件,在其中增加如下的几行(如果相关的配置存在,就替换之): vi /etc/postfix/main.cf [...] smtpd ...

  5. 如何修改android工程的包名?

    在我们android项目开发到一定的程度时由于需要,我们必须修改一下工程的包名,以便更好的发布我们的项目.但是在这个过程中有时候修改好了之后会出现一些错误.下面由小编一步步教你如何更改包名,和解决出现 ...

  6. SLF4JLoggerContext cannot be cast to LoggerContext

    Getting Exception org.apache.logging.slf4j.SLF4JLoggerContext cannot be cast to org.apache.logging.l ...

  7. ubuntu 安装LNMP

    How To Install Linux, nginx, MySQL, PHP (LEMP) stack on Ubuntu 12.04 PostedJune 13, 2012 802.8kviews ...

  8. 准备着手学习python

    1. python 的框架 Tornado 网址: http://www.tornadoweb.org/en/stable/ github: https://github.com/tornadoweb ...

  9. TextureView+SurfaceTexture+OpenGL ES来播放视频(三)

    引自:http://www.jianshu.com/p/291ff6ddc164 做好的Demo截图 opengl-video 前言 讲了这么多,可能有人要问了,播放视频用个android封装的Vid ...

  10. Hibernate 系列教程7-双向一对一

    双向一对一 一对一主要用在 一个一方需要的信息比较少,比如注册的登录信息 另一个一方存储的信息比较多,比如注册之后用户填写的详细信息 实现方式常用的主要有2种: java模型都是一样,其中一个映射文件 ...