当前位置: 移动技术网 > IT编程>数据库>MSSQL > sqlserver 存储过程分页代码第1/2页

sqlserver 存储过程分页代码第1/2页

2017年12月12日  | 移动技术网IT编程  | 我要评论

有关国庆节的手抄报,品堂色,海南人事考试网



复制代码 代码如下:

private void fydb()
{
datatable dt = new datatable();
string con = system.configuration.configurationsettings.appsettings["connectionstring"];
sqlconnection conn = new sqlconnection(con);
sqlcommand comm = new sqlcommand("p_viewpage_a", conn); //建立sqlcommand对象
comm.commandtype = commandtype.storedprocedure; //设置sqlcommand对象执行类型为存储过程
comm.parameters.add("@tablename", sqldbtype.varchar ,200); //向parameters参数列表添加参数
comm.parameters.add("@fieldlist", sqldbtype.varchar, 2000);
comm.parameters.add("@primarykey", sqldbtype.varchar, 100);
comm.parameters.add("@where", sqldbtype.varchar, 2000);
comm.parameters.add("@order", sqldbtype.varchar, 1000);
comm.parameters.add("@sorttype", sqldbtype.int);
comm.parameters.add("@recordercount", sqldbtype.int);
comm.parameters.add("@pagesize", sqldbtype.int);
comm.parameters.add("@pageindex", sqldbtype.int);
comm.parameters.add("@totalcount", sqldbtype.int);
comm.parameters.add("@totalpagecount", sqldbtype.int);
comm.parameters["@totalcount"].direction = parameterdirection.output; //设置参数的输出类型
comm.parameters["@totalpagecount"].direction = parameterdirection.output; //设置参数的输出类型
comm.parameters["@tablename"].value = "type1";//表名
comm.parameters["@fieldlist"].value = "*";//显示列名,如果是全部字段则为*
comm.parameters["@primarykey"].value = "id";//单一主键或唯一值键
comm.parameters["@where"].value = "";//查询条件 不含'where'字符,如id>10 and len(userid)>9
comm.parameters["@order"].value = "id asc";//排序 不含'order by'字符,如id asc,userid desc,必须指定asc或desc
comm.parameters["@sorttype"].value = 1;//排序规则 1:正序asc 2:倒序desc 3:多列排序方法
comm.parameters["@recordercount"].value = 0;//记录总数 0:会返回总记录
comm.parameters["@pagesize"].value = 2;//每页输出的记录数
int id1;
if (request.querystring["id"] == null)
id1 = 1;
else
id1 = convert.toint32(request.querystring["id"]);
comm.parameters["@pageindex"].value = id1;//当前页数
conn.open();
// sqldatareader asr = comm.executereader();
//int dtr = (int)comm.executescalar();
sqldatareader sdr = comm.executereader();
int i=0;
//while (sdr.read())
//{
// dt.rows[i][0] = sdr.getvalue(0);
// dt.rows[i][1] = sdr.getvalue(1);
//}
dt = convertdatareadertodatatable(sdr);
gridview1.datasource = dt;
gridview1.databind();
// dt.rows[0][0];
sdr.close();
// response.write(dtr);
response.write(comm.parameters["@totalcount"].value + "<br>");
response.write(comm.parameters["@totalpagecount"].value + "<br>");
// if((int32)comm.parameters["return_value"].value==0)
conn.close();
//string constr = system.configuration.configurationsettings.appsettings["connectionstring"];
//sqlconnection connection = new sqlconnection(constr);
//dataset dataset = new dataset();
//connection.open();
//sqldataadapter sqlda = new sqldataadapter();
//sqlda.selectcommand = buildquerycommand(connection, "p_viewpage_a", parameters);
//sqlda.fill(dataset, tablename);
//connection.close();
//return dataset;
}
#region 将datareader 转为 datatable
/// <summary>
/// 将datareader 转为 datatable
/// </summary>
/// <param name="datareader">datareader</param>
public static datatable convertdatareadertodatatable(sqldatareader reader)
{
try
{
datatable objdatatable = new datatable();
int intfieldcount = reader.fieldcount;
for (int intcounter = 0; intcounter < intfieldcount; ++intcounter)
{
objdatatable.columns.add(reader.getname(intcounter), reader.getfieldtype(intcounter));
}
objdatatable.beginloaddata();
object[] objvalues = new object[intfieldcount];
while (reader.read())
{
reader.getvalues(objvalues);
objdatatable.loaddatarow(objvalues, true);
}
reader.close();
objdatatable.endloaddata();
return objdatatable;
}
catch (exception ex)
{
throw new exception("转换datareader为datatable出错!", ex);
}
}
#endregion
2

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网