LINQ(4)

2019-04-15 20:11

简易留言簿

现在,我们就可以使用Linq to sql完成简易留言簿了。实现以下功能:

发表留言(增) 查看留言(查)

管理员回复留言(改) 管理员删除留言(删除)

首先,创建一个Default.aspx,在页面上加入一些控件:

? ? ? ?

> 姓名

留言

<%# Eval(\

<%# Eval(\

管理员回复:<%# Eval(\暂无\


div>

你可能很难想象,使用Linq to sql进行数据访问会是这么简单,后台代码: c partial class _Default : System.Web.UI.Page

estBookDataContext ctx = new GuestBookDataContext(\

otected void Page_Load(object sender, EventArgs e)

f (!IsPostBack) {

SetBind(); }

otected void btn_SendMessage_Click(object sender, EventArgs e)

bGuestBook gb = new tbGuestBook(); D = Guid.NewGuid();

gb.UserName = tb_UserName.Text; gb.Message = tb_Message.Text; gb.IsReplied = false;

gb.PostTime = DateTime.Now; ctx.tbGuestBooks.Add(gb); ctx.SubmitChanges(); SetBind();

vate void SetBind()

rpt_Message.DataSource = from gb in ctx.tbGuestBooks orderby gb.PostTime descending select gb; rpt_Message.DataBind();

前面创建Linq to sql Classes的时候我们输入名字GuestBook,系统就为我们自动创建了GuestBookDataContext(你也可以在GuestBook.Designer.cs中找到类定义)。在绑定的时候我们使用查询句法查询留言表中所有留言,按照发表时间倒序(天哪?这是数据访问吗?好像仅仅定义了一句SQL啊)。在发表留言按钮中,我们为一个tbGuestBook赋值,然后把它加入留言表,再提交更改,就这样完成了记录的插入。 运行效果如下图:

然后,再创建一个Admin.aspx,前台代码如下:

<%# Eval(\


后台代码:

public partial class Admin : System.Web.UI.Page {

GuestBookDataContext ctx = new GuestBookDataContext(\

protected void Page_Load(object sender, EventArgs e) {

if (!IsPostBack) {

SetBind(); } }

private void SetBind() {

rpt_Message.DataSource = from gb in ctx.tbGuestBooks orderby gb.PostTime descending select gb; rpt_Message.DataBind(); }

protected void rpt_Message_ItemCommand(object source, RepeaterCommandEventArgs e) {

if (e.CommandName == \ {

StreamWriter sw = new StreamWriter(Server.MapPath(\ ctx.Log = sw;

tbGuestBook gb = ctx.tbGuestBooks.Single(b => b.ID == new Guid(e.CommandArgument.ToString())); ctx.tbGuestBooks.Remove(gb); ctx.SubmitChanges(); SetBind(); sw.Close(); }

if (e.CommandName == \ {

StreamWriter sw = new StreamWriter(Server.MapPath(\ ctx.Log = sw;

tbGuestBook gb = ctx.tbGuestBooks.Single(b => b.ID == new Guid(e.CommandArgument.ToString())); gb.Reply = ((TextBox)e.Item.FindControl(\ gb.IsReplied = true; ctx.SubmitChanges(); SetBind(); sw.Close(); } } }

运行效果如下图:

在这里,我们通过Single方法获取一条记录,也就是一个tbGuestBook实例,更新了一些属性后保存也就完成了改这个操作。删除操作更简单,只需要从表中移除对象。你是不是觉得好像不是在操作数据库,像在操作内存中的对象。 由于写了日志,看看改和删操作会是怎么样的SQL?


LINQ(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:关于中国航空发动机的最新报道 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: