我在我的ASP .NET Web項目中顯示Crystal Report時出現問題。這是我的「查看報告」按鈕代碼:Crystal Reports返回「DataSet不支持System.Nullable」與存儲過程
private void ViewReport(int bankID, DateTime dateFrom, DateTime dateTo)
{
ReportDocument report = new ReportDocument();
report.Load(Server.MapPath("~\\Reports\\rptBankTransactionsList.rpt"));
report.SetDataSource(bankEntities.spBankTransactionsList(bankID, dateFrom, dateTo).ToList());
report.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, false, "TransactionsList");
}
我使用實體框架,以及spBankTransactionsList存儲過程返回正確的價值觀。我甚至使用完全相同的存儲過程在GridView中顯示結果,沒有任何問題。該報告正在使用具有與存儲過程完全相同的結果值的DataSet。
這是存儲過程:
ALTER PROCEDURE [dbo].[spBankTransactionsList]
@bankID AS INT,
@dateFrom AS DATETIME2,
@dateTo AS DATETIME2
AS
BEGIN
SELECT B.BankID, B.BankName, BT.Date, BT.Description, BT.Amount
FROM Bank B
INNER JOIN BankTransaction BT ON B.BankID = BT.BankID
WHERE B.BankID = @bankID
AND BT.Date BETWEEN @dateFrom AND @dateTo
END
我有同樣的情況幾份報告,這是我回國的「數據集不支持System.Nullable」錯誤加載報告時,只有一個。存儲過程結果不顯示任何空值,正如我所說的,GridView中的結果是正確的。
如果存儲過程結果的行爲零,則報告加載正常,顯然沒有記錄但會加載!我錯過了什麼?
感謝advace。
不知怎的,它具有與日期列做。只是爲了測試我從SP刪除列,並將在實體框架的變化。因此, ,它顯示的報告很好,然後我又添加了日期列,現在它的工作原理!我不知道爲什麼會發生這種情況,但至少現在它可以正常工作 –
也許你的日期日期在字段中有一個空的v ALUE。 –
不,日期字段設置爲「不爲空」,這就是爲什麼我不明白這裏發生了什麼 –