Tôi đang đối mặt với vấn đề này. Tôi có một thủ tục lưu trữ mà trả về 6 hàng khi tôi thực hiện nó.Tại sao IDataReader mất liên tiếp?
Nhưng khi tôi truy xuất các hàng trong ứng dụng của mình bằng cách sử dụng ExecuteReader
, nó chỉ trả về 5 hàng. Tại sao nó mất một hàng ??
thủ tục lưu trữ của tôi bao gồm 5 báo cáo công đoàn mà có được lấp đầy từ một bảng duy nhất:
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
là đối tượng cơ sở dữ liệu của tôi. Và cmd
là SqlCommand
được sử dụng để gọi thủ tục được lưu trữ.
UserID
là tham số được truyền
lưu trữ mã thủ tục là:
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
Xin chỉ cho bạn mã. –
Vui lòng chỉ cho chúng tôi quy trình được lưu trữ. – Fischermaen