Я столкнулся с этой проблемой.У меня есть хранимая процедура, которая возвращает 6 строк, когда я ее выполняю.
Но когда я получаю строки в моем приложении, используя ExecuteReader
, он возвращает только 5 строк. Почему теряется строка ??
Моя хранимая процедура состоит из 5 операторов объединения, которые заполняются из одной таблицы:
dbase.AddInParameter(cmd, "@LoginUser", DbType.String, UserID);
try
{
using (IDataReader dr = dbase.ExecuteReader(cmd))
if (dr.Read())
{
dt = new DataTable("DashBoard");
dt.Load(dr);
}
}
dbase
isмой объект базы данных.И cmd
- это SqlCommand
, используемый для вызова хранимой процедуры.
UserID
- передача параметра
Код хранимой процедуры:
ALTER PROCEDURE [dbo].[USP_ViewAdminDashBoard](@LoginUser varchar(75))
-- Add the parameters for the stored procedure here
AS
BEGIN
SET NOCOUNT ON;
SET DATEFORMAT DMY;
DECLARE @LastLoginDate as DateTime
Select @LastLoginDate = dbo.UDF_GetLastLoginByUser(@LoginUser)
Select 'Last Login Date', convert(varchar(12),@LastLoginDate,105)
Union
Select 'Nos. Records pending for Upload' as Title, convert(varchar(5),COUNT(s.BatchID)) Total from dbo.BREGISTRATIONENTRY s, Dbo.TBL_iBATCH B
where B.BatchID = s.BatchID And b.Forwarded = 0 and b.isBatchClosed = 1
END