原创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;
        }

    }


}


原创粉丝点击