@tablename varchar(200) , --表名
@strGetFields varchar(200) = '*', --查询列名
@PageIndex int = 1 , --页码
@pageSize int = 15, --页面大小
@strWhere varchar(100) = '', --查询条件
@strOrder varchar(100) = '', --排序列名
@intOrder bit = 0, --排序类型 1为升序
@CountAll int output --返回纪录总数用于计算页面数
as
begin
declare @strSql varchar(500) --主语句
declare @strTemp varchar(100) --临时变量
declare @strOrders varchar(50) --排序语句
declare @table varchar(70)
if @intOrder = 0
begin
--为0是升序
set @strTemp = '>(select max'
set @strOrders = ' order by '+@strOrder+' asc '
end
else
begin
--否则为降序
set @strTemp = '<(select min'
set @strOrders = ' order by '+@strOrder+' desc '
end
if @PageIndex =1 --第一页直接读出纪录
begin
if @strWhere = ''
begin
set @strSql = 'select top '+str(@pageSize)+' '+@strGetFields+' from '+@tablename+' '+@strOrders
set @table=@tablename
exec('select 1 from '+@table)
set @CountAll=@@rowCount
end
else
begin
set @strSql = 'select top '+str(@pageSize)+' '+@strGetFields+ ' from '+@tablename+' where '+@strWhere+' '+@strOrders
set @table=@tablename
exec('select 1 from '+@table)
set @CountAll=@@rowCount
end
end
else
begin
set @strSql = 'select top'+str(@pageSize)+' '+@strGetFields+' from '+@tablename+' where '+@strOrder+' '+@strTemp+' ('+@strOrder+')'
+' from (select top '+str((@pageIndex-1)*@pageSize)+' '+@strGetFields+' from '+@tablename+ ' '+@strOrders+ ') as tempTable ) '+@strOrders
set @table=@tablename
exec('select 1 from '+@table)
set @CountAll=@@rowCount
if @strWhere != ' '
begin
set @strSql = 'select top '+str(@pageSize)+ ' '+@strGetFields+' from '+@tablename+ ' where '+@strOrder+ ' '+@strTemp+' ('+@strOrder+') '
+' from(select top '+str((@pageIndex-1)*@pageSize)+' '+@strGetFields+' from '+@tablename+' where '+@strWhere+' ' +@strOrders+') as tempTable) where '+@strWhere+' '+@strOrders
set @table=@tablename
exec('select 1 from '+@table)
set @CountAll=@@rowCount
end
end
exec(@strSql)
exec(@strSqlCount)
end
GO
SqlParameter[] para = new SqlParameter[]
{
new SqlParameter("@tablename",SqlDbType.VarChar,200),
new SqlParameter("@strOrder",SqlDbType.VarChar,100),
new SqlParameter("@CountAll",SqlDbType.Int)
};
para[0].Value="ConsignmentUnitTable"; //表名
para[1].Value="UnitName"; //表里面的主键 varchar型
para[2].Direction=ParameterDirection.Output;
try
{
string connStr="server=localhost;database=GuangMingHuiBaoDepotDataBase;User id=sa;password=;";
ds=SqlHelper.ExecuteDataset(connStr,CommandType.Text,selectStr);
ds = SqlHelper.ExecuteDataset(connStr,CommandType.StoredProcedure,"AllProce",para);
}
catch(Exception eall)
{
Response.Write(eall.Message);
}
当绑定数据到DataSet时
DGridUnit.DataSource=ds;
DGridUnit.DataBind();
提示
DataBinder.Eval:“System.Data.DataRowView”不包含名称为 UnitName 的属性。
谢谢,已经一个人郁闷很久了
请问下哪里错了?
6 个解决方案
#1
自已顶一下
ds=SqlHelper.ExecuteDataset(connStr,CommandType.Text,selectStr);
这一句是测试用的
不要
ds=SqlHelper.ExecuteDataset(connStr,CommandType.Text,selectStr);
这一句是测试用的
不要
#2
你的存储过程有问题 ,我测了一下,不行。
#3
就是说你只是传了参数,没有传排序的参数,导致存储过程执行错误。从而没有结果集产生。所以会出现错误。 你在试试看是不是。
#4
我用它取过一次完全的值
所来有一次鼠标移动
不知将哪里改了
顺便再问一下
在VS里调试存储过程
单步执行的时候为何进不到单条语句中去呢
也就是单步执行看不到效果
所来有一次鼠标移动
不知将哪里改了
顺便再问一下
在VS里调试存储过程
单步执行的时候为何进不到单条语句中去呢
也就是单步执行看不到效果
#5
"形式参数 '@PageIndex' 定义为 OUTPUT,但实际参数却未声明为 OUTPUT。" "形式参数 '@PageIndex' 定义为 OUTPUT,但实际参数却未声明为 OUTPUT。" string
现在变成这了
是不是参数排序的问题?
我已经弄了好久了
麻烦各位
现在变成这了
是不是参数排序的问题?
我已经弄了好久了
麻烦各位
#6
存储过程没问题
set @table=@tablename
exec('select 1 from '+@table)
set @CountAll=@@rowCount
这三句破坏了存储过程的执行
哪位给解释一下
不胜感激
set @table=@tablename
exec('select 1 from '+@table)
set @CountAll=@@rowCount
这三句破坏了存储过程的执行
哪位给解释一下
不胜感激
#1
自已顶一下
ds=SqlHelper.ExecuteDataset(connStr,CommandType.Text,selectStr);
这一句是测试用的
不要
ds=SqlHelper.ExecuteDataset(connStr,CommandType.Text,selectStr);
这一句是测试用的
不要
#2
你的存储过程有问题 ,我测了一下,不行。
#3
就是说你只是传了参数,没有传排序的参数,导致存储过程执行错误。从而没有结果集产生。所以会出现错误。 你在试试看是不是。
#4
我用它取过一次完全的值
所来有一次鼠标移动
不知将哪里改了
顺便再问一下
在VS里调试存储过程
单步执行的时候为何进不到单条语句中去呢
也就是单步执行看不到效果
所来有一次鼠标移动
不知将哪里改了
顺便再问一下
在VS里调试存储过程
单步执行的时候为何进不到单条语句中去呢
也就是单步执行看不到效果
#5
"形式参数 '@PageIndex' 定义为 OUTPUT,但实际参数却未声明为 OUTPUT。" "形式参数 '@PageIndex' 定义为 OUTPUT,但实际参数却未声明为 OUTPUT。" string
现在变成这了
是不是参数排序的问题?
我已经弄了好久了
麻烦各位
现在变成这了
是不是参数排序的问题?
我已经弄了好久了
麻烦各位
#6
存储过程没问题
set @table=@tablename
exec('select 1 from '+@table)
set @CountAll=@@rowCount
这三句破坏了存储过程的执行
哪位给解释一下
不胜感激
set @table=@tablename
exec('select 1 from '+@table)
set @CountAll=@@rowCount
这三句破坏了存储过程的执行
哪位给解释一下
不胜感激