0

我正在使用 RDLC 制作报告。Visual Studio 2010 Ultimate + SQL Server 2012 Express

发票 ID 是一个字符串。这是一个在 Dataset TableAdapter 上带有参数的查询。我在数据集的查询生成器部分输入了这个 SQL。

SELECT        SequenceNo, InvoiceID, VisitID, CaseNo, WalkinID, Payment, Invoice_date, Status
FROM            INVOICE
WHERE        (InvoiceID = @InvoiceID)

当我单击查询生成器中的执行查询时,它会询问一个值。我输入20130508-650875。没有任何引号。然后它会产生我想要的结果。

现在,我将运行程序然后生成报告。

C#部分:

 INVOICETableAdapter.Fill(dataset.INVOICE, InvoiceID);
    MessageBox.Show(InvoiceID.ToString()); //just to confirm what value the parameter is getting

现在,我的报告中没有任何内容。我不知道为什么。我的报告中的表格现在只包含我拖动的列的标题。

我尝试删除查询的 ---WHERE--- 部分,它产生了很多结果!

SELECT        SequenceNo, InvoiceID, VisitID, CaseNo, WalkinID, Payment, Invoice_date, Status
FROM            INVOICE
//WHERE        (InvoiceID = @InvoiceID)

现在,我想问你们,当我执行带有参数的报表时,为什么我的报表中的表格会变为空白,这可能是什么原因。但如果它没有参数,它会产生所有结果。会不会是查询?

4

1 回答 1

0

这显然是一个查询,但可能不像您期望的那样险恶。第一步应该确保参数是您的查询实际上正在设置。根据此处提供的信息,听起来您的 where 子句正在过滤掉所有行,因此参数要么保持为空,要么未设置为您期望的值。

尝试让您的代码打印出整个查询/存储过程调用,准确抓取它吐出的内容,然后手动运行。

于 2013-05-10T21:08:04.000 回答