ASP.net获取存储过程返回值
今天做新闻系统的分页功能..结果想编写一个存储过程来获取新闻的记录数..返回值怎么也取不出来,经过Google的搜索,好不容易整下来了,哇咔咔!记下来先!
存储过程在这里:
呵呵,好简单..就是我不会,看来我还要更努力才行,加油!
今天看李天平老师的.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;
存储过程在这里:
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
代码在这里!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
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;