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. JavaScript高级程序设计:第十七章

    错误处理与调试 一.错误处理 1.try-catch语句: ECMA-262第3版引入了try-catch语句,作为javascript中处理异常的一种标准方式.基本的语法如下: try { //可能 ...

  2. hdu_4734_F(x)(数位DP水)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4734 题意:给你一个F(x)的定义,然后给你a,b,问你在0到b包括b有多少个数满足F(x)<= ...

  3. LeetCode OJ 101. Symmetric Tree

    Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For e ...

  4. IOS设备上网页中的页面滚动效果模拟

    可能咋一看不知道我说的是个啥,因为iOS本来就用这功能的啊,还模拟它干啥?先听我说下项目背景哈 我现在开发的是一个webapp,主要是用在ipad上,这个app的大小是固定大小的,为了防止触摸它出现弹 ...

  5. Golang: pprof

    压测的时候,如果在应用包里加入runtime包,会对压测产生非常严重的干扰. 测试1:开启runtime包 [luwenwei@test-weishi01v ~]$ siege -c --time=1 ...

  6. 运维必备:Oracle自备份精简教程(linux及win)

    Oracle在linux环境下的自动备份 1.自动导出及历史文件删除脚本 su - oracle<<EOF cd /db_backup/databak mv orabak*.* /db_b ...

  7. JS调用OC方法

    - (void)myMethod:(CDVInvokedUrlCommand*)command { NSString* echo = [command.arguments objectAtIndex: ...

  8. rndc 错误解决 和 远程配置

    dc: connect failed: connection refusedrndc: connect failed: connection refused 解决办法:默认安装BIND9以后,是无法直 ...

  9. 自定义cell,根据数据源,要对cell的布局进行调整,没有实现调整的相应效果

    自定义cell,用于两种显示情况,首次进来A种情况(主材页面),正确显示,然后切换B种情况(辅材情况),可以正确显示,但是当再次切换回A种情况(主材情况)的时候,主材cell不能正常显示了,遗留的B中 ...

  10. myeclipse 之 快捷键

    简单记录一下,新装了个机器,win7系统,想设置一下自己习惯的快捷键 如:ctrl+alt+方向键,复制行,发现设置不上,原先的自带的也失效,设置一下ctrl+alt+其它键,ok可以使用,这说明某些 ...