我正面臨這個問題。我有一個存儲過程,當我執行它時返回6行。爲什麼IDataReader會丟失一行?
但是當我用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
是我的數據庫對象。而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
請出示您的碼。 –
請向我們展示存儲過程。 – Fischermaen