ASP.net获取存储过程返回值

今天做新闻系统的分页功能..结果想编写一个存储过程来获取新闻的记录数..返回值怎么也取不出来,经过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;
posted @ 2009-08-22 21:22  Cleary  阅读(4757)  评论(0编辑  收藏  举报