原创linq对数据库进行操作(分页)
来源:互联网 发布:七牛php base64上传 编辑:程序博客网 时间:2024/04/29 13:42
近期公司要做新网站,经理让我用.net3.5 C#3.0 做.
研究了一下linq 本人不善言辞,把今天写的代码发出来.
希望和大家一起学习,一起进步.
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Text;
public partial class _Default : System.Web.UI.Page
...{
public string strCn = ConfigurationManager.ConnectionStrings["textConnectionString"].ConnectionString;
public TestDataContext Dc;
int RecordCount = 0;
int PageCount = 1;
protected void Page_Load(object sender, EventArgs e)
...{
Dc = new TestDataContext(strCn);
RecordCount = Dc.student.Count();//得到记录数
PageCount = (int)Math.Ceiling((decimal)RecordCount / 2); //以2条记录为一页,计算总页码
if (!IsPostBack)
...{
ViewState["page"] = 1;
Bind();
}
}
private void Bind()
...{
var SkipIndex = (int.Parse(ViewState["page"].ToString()) - 1) * 2; //计算起始索引,以供后面的Skip扩展方法之用
var result = (from temp in Dc.student select temp).Skip(SkipIndex).Take(2);
GridView1.DataSource = result;
GridView1.DataBind();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
...{
GridView1.EditIndex = e.NewEditIndex;
Bind();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
...{
GridView1.EditIndex = -1;
Bind();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
...{
int id = int.Parse(GridView1.DataKeys[e.RowIndex].Values[0].ToString());
var temp = Dc.student.Single(t => t.id == id);
Dc.student.DeleteOnSubmit(temp);
Dc.SubmitChanges();
Bind();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
...{
int id = int.Parse(GridView1.DataKeys[e.RowIndex].Values.ToString());
string name = ((TextBox)(GridView1.Rows[e.RowIndex].FindControl("txtname"))).Text;
var temp = Dc.student.Single(t => t.id == id);
temp.name = name;
Dc.SubmitChanges();
GridView1.EditIndex = -1;
Bind();
}
protected void btnsave_Click(object sender, EventArgs e)
...{
string name = txtSubName.Text;
student s = new student();
s.name = name;
Dc.student.InsertOnSubmit(s);
Dc.SubmitChanges();
Bind();
txtSubName.Text = "";
}
protected void lbt1_Click(object sender, EventArgs e)
...{
LinkButton lb = (LinkButton)sender;
switch (lb.Text)
...{
case "首页":
ViewState["page"] = 1;
Bind();
break;
case "上一页":
if (int.Parse(ViewState["page"].ToString()) > 1)
...{ ViewState["page"] = int.Parse(ViewState["page"].ToString()) - 1; }
else
...{ ViewState["page"] = 1; }
Bind();
break;
case "下一页":
if (int.Parse(ViewState["page"].ToString()) < PageCount )
...{ ViewState["page"] = int.Parse(ViewState["page"].ToString()) + 1; }
else
...{ ViewState["page"] = PageCount ; }
Bind();
break;
case "尾页":
ViewState["page"] = PageCount;
Bind();
break;
default:
break;
}
}
}
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Text;
public partial class _Default : System.Web.UI.Page
...{
public string strCn = ConfigurationManager.ConnectionStrings["textConnectionString"].ConnectionString;
public TestDataContext Dc;
int RecordCount = 0;
int PageCount = 1;
protected void Page_Load(object sender, EventArgs e)
...{
Dc = new TestDataContext(strCn);
RecordCount = Dc.student.Count();//得到记录数
PageCount = (int)Math.Ceiling((decimal)RecordCount / 2); //以2条记录为一页,计算总页码
if (!IsPostBack)
...{
ViewState["page"] = 1;
Bind();
}
}
private void Bind()
...{
var SkipIndex = (int.Parse(ViewState["page"].ToString()) - 1) * 2; //计算起始索引,以供后面的Skip扩展方法之用
var result = (from temp in Dc.student select temp).Skip(SkipIndex).Take(2);
GridView1.DataSource = result;
GridView1.DataBind();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
...{
GridView1.EditIndex = e.NewEditIndex;
Bind();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
...{
GridView1.EditIndex = -1;
Bind();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
...{
int id = int.Parse(GridView1.DataKeys[e.RowIndex].Values[0].ToString());
var temp = Dc.student.Single(t => t.id == id);
Dc.student.DeleteOnSubmit(temp);
Dc.SubmitChanges();
Bind();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
...{
int id = int.Parse(GridView1.DataKeys[e.RowIndex].Values.ToString());
string name = ((TextBox)(GridView1.Rows[e.RowIndex].FindControl("txtname"))).Text;
var temp = Dc.student.Single(t => t.id == id);
temp.name = name;
Dc.SubmitChanges();
GridView1.EditIndex = -1;
Bind();
}
protected void btnsave_Click(object sender, EventArgs e)
...{
string name = txtSubName.Text;
student s = new student();
s.name = name;
Dc.student.InsertOnSubmit(s);
Dc.SubmitChanges();
Bind();
txtSubName.Text = "";
}
protected void lbt1_Click(object sender, EventArgs e)
...{
LinkButton lb = (LinkButton)sender;
switch (lb.Text)
...{
case "首页":
ViewState["page"] = 1;
Bind();
break;
case "上一页":
if (int.Parse(ViewState["page"].ToString()) > 1)
...{ ViewState["page"] = int.Parse(ViewState["page"].ToString()) - 1; }
else
...{ ViewState["page"] = 1; }
Bind();
break;
case "下一页":
if (int.Parse(ViewState["page"].ToString()) < PageCount )
...{ ViewState["page"] = int.Parse(ViewState["page"].ToString()) + 1; }
else
...{ ViewState["page"] = PageCount ; }
Bind();
break;
case "尾页":
ViewState["page"] = PageCount;
Bind();
break;
default:
break;
}
}
}
- 原创linq对数据库进行操作(分页)
- Linq:对XML文档进行排序操作
- LINQ对数据库的CRUD操作
- 【ecshop 资料】ecshop对数据库测试数据进行清除操作。老杨ecshop原创
- 对ORACLE数据库进行操作
- 利用sql对数据库进行分页
- 利用sql对数据库进行分页
- ThinkPHP 对数据库的数据进行分页
- easyUI使用分页过滤器对数据进行分页操作
- 使用mybatis对SQLite数据库分页操作
- [原创]在数据库中进行IP操作的解决方案
- 从数据库取出数据在jsp页面上以表格形式呈现,并对表格数据进行分页打印操作。
- 利用COM+对数据库操作进行单元测试
- SQL对数据库进行的一系列操作
- C# 对数据库进行 事务操作
- Android中对数据库进行CRUD操作
- 使用占位符对数据库进行操作
- 使用ContentValues对数据库进行操作
- 一次nmidahena.com/1.js 式sql 注入攻击的处理经历
- 函数声明与(*(void(*)())0)()分析
- Server 2008 隆重登场!(免费培训)
- 不同的阶段,不同的收获
- Apache2.4+Tomcat6.0版本集群
- 原创linq对数据库进行操作(分页)
- Oracle直连代码
- 线性空间的概念
- #Pragma 指令
- eclipse下开发webservice小教程
- 正则表达式30分钟入门教程
- jBPM工作流程定义
- c# SOCKET同步通信
- 调用TCP/IP通讯客户端的VB6样例