指定一个"where条款"当使用ReportViewer控件和报表w/ Oracle时

本文关键字:quot ReportViewer 控件 Oracle 报表 条款 where 一个 | 更新日期: 2023-09-27 17:50:21

我试图使用报告(RDLC)文件在本地处理模式下使用Oracle DB的ReportViewer控件,我不知道如何在我的查询中指定"where子句"。我只想返回1行,因为我的报告将基于查询中的1行。

到目前为止我所做的是:

    我创建了一个c# Windows窗体应用程序。
  1. 我添加了一个名为DataSet1的数据集。
  2. 我添加了一个TableAdapter到数据集,创建了一个连接到Oracle添加了一个查询。这里是查询"select * from Lei_Defect_Log"。(拉)
  3. 我在项目中添加了一个名为Report1的报告。
  4. 在"报告数据"窗口,我将数据集设置为我添加的数据集以上。
  5. 我从报告数据窗口中拖动了一些任意的列Dataset1到Report1,这样我就可以验证它是否正常工作。
  6. 我在项目的Form1中添加了一个名为reportViewer1的ReportViewer。我设置了上面创建的reportview1到Report1的报告。

现在,当我运行应用程序时,报告显示来自查询的数据(必须是返回的第一行)。但是我从(Lei_Defect_Log)中提取的表有数千行,我想在查询中指定where子句,只返回1个特定行。(我想在代码中这样做,而不是提示用户)

我尝试在TableAdapter查询中添加where子句如下"select * from Lei_Defect_Log where RA_SN =:RA_SN_PARAM",这将是Oracle的正确查询,但我收到以下错误:

向导在配置TableAdapter: "Fill"时检测到以下问题:细节:生成SELECT语句。指定的参数超出有效值范围。

它将允许我单击OK,但是如果我单击OK,我的DataSet将不会填充列名。所以不行。

我已经花了好几个小时……我被困住了

我所拥有的一切似乎工作,但我只需要能够添加一个where子句来指定我需要的行。

那么我如何指定where子句(在代码或设计器中,我不希望用户提示它),以便我的查询只返回一行/记录?

指定一个"where条款"当使用ReportViewer控件和报表w/ Oracle时

找到了!

在DataSet中,我右键单击TableAdapter,然后单击打开的菜单中的"Configure"。我像上面那样将参数添加到查询中,然后单击Finish,然后单击OK并忽略错误。然后右键点击"FILL, GETDATA"然后点击属性。现在转到主属性窗口,它应该是填充查询的属性。查找Parameters属性并打开Collection并将DbType从Object设置为String..它工作了!!

请参阅此网页截图(我本来会张贴,但需要更多的信用来这样做)