sql 存储过程,返回数据集 并返回总行数 5
mssql存储过程member_list参数@pageint,@sizeint,@numintout这里是获得数据集语句set@num=selectcount(*)fro...
mssql 存储过程
member_list
参数 @page int,@size int,@num int out
这里是获得数据集语句
set @num=select count(*) from member
可是在程序中(int)parms[2].value 这里总是NULL
请问高手怎么获得列表,并返回一个总数?
在程序中,用sqldatareader获得列表,是不是@num就得不到了 展开
member_list
参数 @page int,@size int,@num int out
这里是获得数据集语句
set @num=select count(*) from member
可是在程序中(int)parms[2].value 这里总是NULL
请问高手怎么获得列表,并返回一个总数?
在程序中,用sqldatareader获得列表,是不是@num就得不到了 展开
6个回答
展开全部
1、存储过程创建语法:
create proc 存储过程名
(参数1,参数2,参数3....参数N)
as
begin
SQL语句....
end
2、返回数据集:
一般都是查询
select * from 表名
3、返回总行数:
使用系统函数【@@ROWCOUNT】
select @@ROWCOUNT as ROW_COUNT
合并起来的示例是:
create proc 存储过程名
as
begin
select * from 表名
select @@ROWCOUNT as ROW_COUNT
end
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
换一个思路,不必要用存储过程来实现
我不在的你用的是什么语言
在c#里面,你用dataset来存储执行的返回结果
dataset ds=sql语句
ds就是集合
ds,table[0].count这个就是返回行数
我不在的你用的是什么语言
在c#里面,你用dataset来存储执行的返回结果
dataset ds=sql语句
ds就是集合
ds,table[0].count这个就是返回行数
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SQL Server 里面,好像是这么写的啊
SELECT @num = count(*) from member
要不你就在 查询之后, 马上
PRINT @num
一下,看看执行结果,
--------------------------------------------------
如果 存储过程没有问题, 那么问题可能出在调用的地方:
下面是一个 调用 存储过程, 指定参数 INPUT OUTPUT 的例子
// 定义要查询的参数.
// 第一个参数,是输入的.
testCommand.Parameters.Add(new SqlParameter("@UserName", "HeiHei"));
// 第2个参数,是输出的.
SqlParameter para2 = new SqlParameter("@OutVal", SqlDbType.VarChar, 10);
para2.Direction = ParameterDirection.Output;
testCommand.Parameters.Add(para2);
// 第3个参数,是既输入又输出的.
SqlParameter para3 = new SqlParameter("@InoutVal", SqlDbType.VarChar, 20);
para3.Direction = ParameterDirection.InputOutput;
para3.Value = "HAHA";
testCommand.Parameters.Add(para3);
// ExecuteNonQuery 方法,表明本次操作,不是一个查询的操作。将没有结果集合返回.
// 返回的数据,将是 被影响的记录数.
int insertRowCount = testCommand.ExecuteNonQuery();
// 存储过程执行完毕后,取得 output 出来的数据.
String pa2 = testCommand.Parameters["@OutVal"].Value.ToString();
String pa3 = testCommand.Parameters["@InoutVal"].Value.ToString();
SELECT @num = count(*) from member
要不你就在 查询之后, 马上
PRINT @num
一下,看看执行结果,
--------------------------------------------------
如果 存储过程没有问题, 那么问题可能出在调用的地方:
下面是一个 调用 存储过程, 指定参数 INPUT OUTPUT 的例子
// 定义要查询的参数.
// 第一个参数,是输入的.
testCommand.Parameters.Add(new SqlParameter("@UserName", "HeiHei"));
// 第2个参数,是输出的.
SqlParameter para2 = new SqlParameter("@OutVal", SqlDbType.VarChar, 10);
para2.Direction = ParameterDirection.Output;
testCommand.Parameters.Add(para2);
// 第3个参数,是既输入又输出的.
SqlParameter para3 = new SqlParameter("@InoutVal", SqlDbType.VarChar, 20);
para3.Direction = ParameterDirection.InputOutput;
para3.Value = "HAHA";
testCommand.Parameters.Add(para3);
// ExecuteNonQuery 方法,表明本次操作,不是一个查询的操作。将没有结果集合返回.
// 返回的数据,将是 被影响的记录数.
int insertRowCount = testCommand.ExecuteNonQuery();
// 存储过程执行完毕后,取得 output 出来的数据.
String pa2 = testCommand.Parameters["@OutVal"].Value.ToString();
String pa3 = testCommand.Parameters["@InoutVal"].Value.ToString();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在调用存储过程时@num 参数要指明output。用一下语句测试一下吧:
DECLARE @num INT
SET @num=NULL
EXEC member_list 1,10,@num OUTPUT
print @num
SET @num=NULL
EXEC member_list 1,10,@num
print @num
DECLARE @num INT
SET @num=NULL
EXEC member_list 1,10,@num OUTPUT
print @num
SET @num=NULL
EXEC member_list 1,10,@num
print @num
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询