首页 新闻 会员 周边

SqlHepler.ExecuteReader存储过程和返回

0
[已解决问题] 解决于 2008-05-29 11:06
<P>SqlHepler.ExecuteReader使用存储过程时可以有返回值么?????</P> <P>我看见好多分页存储过程中,返回记录总数和返回记录集是分开处理的。</P> <P>在程序中调用两次,一次获得数据,一次获得记录总数。</P> <P>没有办法一起返回么?</P>
155144的主页 155144 | 初学一级 | 园豆:192
提问于:2008-05-24 21:55
< >
分享
最佳答案
0
返回记录集跟返回记录数,这些都是可以在一个存储过程中实现的,不需要,分开来调用二次实现。记录数等可以用存储过程output参数实现。
李.net | 小虾三级 |园豆:730 | 2008-05-26 09:55
其他回答(2)
0
community server中的小例子... 存储过程中两次select就行了 using( SqlConnection myConnection = GetSqlConnection() ) { SqlCommand myCommand = new SqlCommand(databaseOwner + ".cs_UserActivityReportRecords_Get", myConnection); UserActivityResultSet uars = new UserActivityResultSet(); // Mark the Command as a SPROC myCommand.CommandType = CommandType.StoredProcedure; // Pass sproc parameters myCommand.Parameters.Add("@BegReportDate", SqlDbType.DateTime).Value = BegReportDate; myCommand.Parameters.Add("@EndReportDate", SqlDbType.DateTime).Value = EndReportDate; myCommand.Parameters.Add("@nRecordNumberStart", SqlDbType.Int).Value = RecordNumberStart; myCommand.Parameters.Add("@nRecordNumberEnd", SqlDbType.Int).Value = RecordNumberEnd; myCommand.Parameters.Add("@Paged", SqlDbType.Bit).Value = 1; // Execute the command // myConnection.Open(); using(SqlDataReader dr = myCommand.ExecuteReader(CommandBehavior.CloseConnection)) { // Populate the collection of BlogActivityRecords // while (dr.Read()) uars.Records.Add(CommonDataProvider.PopulateUserActivityResultDataFromIReader(dr)); // Get total records dr.NextResult(); dr.Read(); uars.TotalRecords = (int)dr[0]; dr.Close(); } myConnection.Close(); return uars; }
wingoo | 园豆:1513 (小虾三级) | 2008-05-24 22:49
0
用ExcuteDataset可以一得到两个数据~~
沙加 | 园豆:3680 (老鸟四级) | 2008-05-25 00:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册