|
我程序用的数据库操作类都用的 SqlHelper
我存储过程 存入一个 output参数,用来返回查询的行数字,可是执行 ExecuteReader 后,在取值 参数为null.我把
Reader 对象关了,才能取到,服了,我关完在取还用output 做什么。请问如何 在 Reader对象没关 之前取到 output值,是个bug么还是本身不让你取。
----------------------------------存储过程如下---------------------------
----------------------------------存储过程测试过没问题-------------------
CREATE PROCEDURE [dbo].[SelectInitCar]
@ShowType bit, @Rowss smallint output
AS
If @ShowType =1
Begin
select Car.CarID,Car.CarName,Car.CarSim,Car.LogTime,
OrienSet.Stake,OrienSet.MapStake,OrienSet.LonOrOffset,OrienSet.LatOrOffset
From Car JOIN OrienSet ON Car.CarID = OrienSet.CarID
select @Rowss = @@rowcount
End
Else
Begin
select Car.CarID,Car.CarName,Car.CarSim,Car.LogTime,
OrienSet.Stake,OrienSet.MapStake,OrienSet.LonOrOffset,OrienSet.LatOrOffset,
CarGroup.GroupID,CarGroup.GroupName
From CarGroup
LEFT JOIN Car ON CarGroup.GroupID = Car.GroupID
JOIN OrienSet ON Car.CarID = OrienSet.CarID
select @Rowss = @@rowcount
End
--------------------------------------------------------------------------------------------------------------------------------------------------
----------------------代码如下------------------------------------------------------------------------------------------------------------------
SqlParameter[] sps = new SqlParameter[2];
sps[0] = new SqlParameter("@ShowType", SqlDbType.Bit);
sps[0].Direction = ParameterDirection.Input;
sps[1] = new SqlParameter("@Rowss", SqlDbType.SmallInt);
sps[1].Direction = ParameterDirection.Output;
SqlDataReader dr = (SqlDataReader)Communal.Ahelper.ExecuteReader(Communal.SqlStr, CommandType.StoredProcedure, "SelectInitCar", sps);
//dr.Close();
string xxxx = Convert.ToString(sps[1].Value);
-------------------------------------------------------------------------
谁对sqlhelper比较了解的,告诉我改那里也行!!请高手指教为什么dr开着的时候取值不行?怎么解决,谢谢
|
|