linq to sql 分页 的几种方法
1.数据的分布Skip()和take()
Skip(100)代表跳过100行后.从第101行开始分页;
take(10)表示多少行分页;
例:
var result=from pdt in db.Product
select pdt;
this.dataview.DataSource=result.Skip(10).take(10);
this dataview.DataBind();
注:这种方式一次性查询出来所有数据,然后再分页;
2.下面的方式是每个提交时绑定的都是特定的数据,而非所有数据;
public overridevoid DataBind()
{
db.log=this.response.output;
var result=from pdt in db.product
select pdt;
int skipNumber=Int.parse(this.textbox1.text)*10;
this.dataview.DataSource=result.Skip(skipNumber).take(10);
this dataview.DataBind();
}
protected void NextButton_Click(Object sender,EventArgs e)
{
this textbox1.text=(int.parse(this.textbox1.text)+1).ToString);
this.DataBind();
}
protected void form_Load(Object send,EventArgs e)
{
if (!this.IsPostBack)
{
this.DataBind();
}
}
4、
费话不多说,主要是Linq中的Skip及Take这二个扩展方法
int RecordCount = 0;
int PageCount = 1;
DataClassesDataContext data = new DataClassesDataContext();
int SkipIndex = 0;
private string _PageString = "";
public string PageString
{
get {
return _PageString;
}
set {
_PageString = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
RecordCount = data.Orders.Coun
相关文档:
在开发不论是WEB还是Winform程序中,数据分页是经常遇到的问题,要是在代码中实现此过程,显然降低了服务器的效率,可以使用以下存储过程来实现。
CREATE PROCEDURE pagination
@tblName varchar(255), -- 表名
@strGetFields varchar(1000) = '*', -- 需要返回的列
@fldName varchar(255)= ......
from: http://blog.163.com/ck275601774/blog/static/1230468012009631113559291/
--日期转换参数
select CONVERT(varchar,getdate(),120)
--2009-03-15 15:10:02
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
--20090315151201
select CONVERT(varchar(12) , getdate ......
首先用查询语句,从tblTask表中查询出所有的数据,然后将其保存为csv格式。
在SQL语句窗口,输入如下内容:
USE Keii BULK INSERT dbo.tblTask
& ......
一、表结构查询
SELECT TOP (100) PERCENT a.name AS zdm,COLUMNPROPERTY(a.id, a.name, 'IsIdentity') AS bs ,
CASE WHEN EXISTS (SELECT 1 from dbo.sysindexes si INNER JOIN dbo.sysindexkeys sik ON si.id = sik.id
AND si.indid = sik.indid INNER JOIN dbo.syscolumns sc ON sc.id = sik.id AND sc. ......