今天做新闻系统的分页功能..结果想编写一个存储过程来获取新闻的记录数..返回值怎么也取不出来,经过Google的搜索,好不容易整下来了,哇咔咔!记下来先!
存储过程在这里:
1
--
用ParameterDirection.ReturnValue; 返回值
2
--
=============================================
3
--
Author: 杨峰
4
--
Create date: 2009-08-22 16:18
5
--
Description: 计算表的记录数
6
--
=============================================
7
ALTER
PROCEDURE
[
dbo
]
.
[
CountNumber
]
8
9
AS
10
declare
@num
int
11
12
select
@num
=
count
(
*
)
from
news
13
14
return
@num
15
16
GO
17
18
19
--
用ParameterDirection.Output; 参数返回值
20
ALTER
PROCEDURE
[
dbo
]
.
[
CountNumber
]
21
@num
int
output
22
AS
23
select
@num
=
count
(
*
)
from
news
24
return
@num
25
GO
代码在这里!
1
#region
计算出数据表的记录数
2
3
///
<summary>
4
///
计算出数据表的记录数
5
///
</summary>
6
///
<returns>
记录数
</returns>
7
public
string
CountNumber()
8
{
9
10
cmd
=
new
SqlCommand(
"
CountNumber
"
, GetConn());
11
cmd.CommandType
=
CommandType.StoredProcedure;
12
SqlParameter i
=
new
SqlParameter(
"
@num
"
, SqlDbType.Int);
13
//
i.Direction = ParameterDirection.Output;
14
i.Direction
=
ParameterDirection.ReturnValue;
15
cmd.Parameters.Add(i);
16
cmd.ExecuteNonQuery();
17
18
//
int strReturn = i.Value.ToString();
//
返回值--方法1
19
string
num
=
cmd.Parameters[
"
@num
"
].Value.ToString();
20
//
返回值--方法2
21
22
conn.Close();
23
24
return
num;
25
26
}
27
28
#endregion
呵呵,好简单..就是我不会,看来我还要更努力才行,加油!
今天看李天平老师的
.NET深入体验与实战精要
这本书的样章,才发现原来有更简单的方法..晕死哦
记下来,又学到好东西了~
下边的是老师书上的内容:
在 DataTable中也是可以进行数据统计的。
下面就通过几个简单的示例, 介绍一下如何无须通过逐条记录进行计算就可以轻松地获
得 DataTable中的记录统计结果。这里调用的是功能强大的 DataTable 的函数 Compute。
(1)函数说明:
public object Compute(string strExpression,string strFilter);
z strExpression:要计算的表达式字符串,基本上类似于 Sql Server中的统计表达式。
z strFilter:统计的过滤字符串,只有满足这个过滤条件的记录才会被统计。
:
很好用的,改过之后就这一句话就行了,真方便啊,以后还要继续努力,哈哈!
int count =(int) dt.Compute("count(id)", "true");//获取新闻总数
anp.RecordCount = count;