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就得不到了
展开
 我来答
百度网友faadf46
高粉答主

2020-05-07 · 说的都是干货,快来关注
知道答主
回答量:4556
采纳率:0%
帮助的人:75.8万
展开全部

1、打开SQL Server Management Studio找到存储过程所在的数据库。在对象资源管理器详细信息中可以看到存储过程的文件夹

2、点击打开这个文件夹可以,在搜索中输入要搜索的存储过程名称。

3、同样也可以在数据库目录结构处选择存储过程右键菜单中的筛选设置。

4、在这里可以进行详细的条件筛选设置。将需要查看的存储过程搜索出来。

5、找到这个SQL存储过程之后,也可以右键点击菜单中的修改,进入SQL存储过程编辑。

6、查看SQL存储过程过程是否带有参数,因为要执行SQL存储过程时需要使用的参数。

SQL的艺术
推荐于2018-03-22 · SQL写多了就会在追求极致
SQL的艺术
采纳数:2040 获赞数:3324

向TA提问 私信TA
展开全部

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
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友86fe1be10
2010-10-03 · TA获得超过627个赞
知道小有建树答主
回答量:1770
采纳率:0%
帮助的人:693万
展开全部
换一个思路,不必要用存储过程来实现
我不在的你用的是什么语言
在c#里面,你用dataset来存储执行的返回结果
dataset ds=sql语句
ds就是集合
ds,table[0].count这个就是返回行数
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangzhiqing999
2010-10-03 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3352万
展开全部
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();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
这个没占用
2010-10-03 · 超过13用户采纳过TA的回答
知道答主
回答量:22
采纳率:0%
帮助的人:31.8万
展开全部
在调用存储过程时@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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式