原创linq对数据库进行操作(分页)

 

近期公司要做新网站,经理让我用.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;
        }

    }


}


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值