【问题标题】:Write a custom query in Crystal Report by visual studio c#通过 Visual Studio C# 在 Crystal Report 中编写自定义查询
【发布时间】:2020-05-17 19:16:44
【问题描述】:

我想创建一个从 3 个 MySQL 表中获取值的 Crystal 报表,但我想编写我的自定义查询,因为当我在 Visual Studio 中选择表时,它显示的查询不符合我的预期。 我在 localhost phpMyAdmin 上测试了查询,它有效。

注 1:我使用的是 Visual Studio 2019 并安装了 Crystal Report SP26 注 2:当 Visual Studio 编写查询时,它在表名中添加了“1” 像 boq_table 一样让它成为 boq_table1。

下面的代码代表我要执行的查询:

SELECT
    ubc.boq_table.itemNum,
    ubc.boq_table.descriptionOfWork,
    ubc.boq_table.unit,
    ubc.boq_table.contractualQuantity,
    ubc.boq_table.priceNum,
    ubc.summary.executedQuantLastSummary,
    ubc.summary.priceLastWorks,
    ubc.summary.executedQuantBetw2Sum,
    ubc.submittal.priceCurrentWorks
FROM
    ubc.boq_table
LEFT OUTER JOIN ubc.summary ON
    ubc.boq_table.itemNum = ubc.summary.itemNum
LEFT OUTER JOIN ubc.submittal ON
    ubc.boq_table.itemNum = ubc.submittal.itemNum
WHERE
    ubc.boq_table.projectName ='proj'
UNION
SELECT
    ubc.boq_table.itemNum,
    ubc.boq_table.descriptionOfWork, 
    ubc.boq_table.unit, 
    ubc.boq_table.contractualQuantity, 
    ubc.boq_table.priceNum, 
    ubc.summary.executedQuantLastSummary, 
    ubc.summary.priceLastWorks, 
    ubc.summary.executedQuantBetw2Sum, 
    ubc.submittal.priceCurrentWorks 
FROM
    ubc.summary
LEFT OUTER JOIN ubc.boq_table ON 
    ubc.summary.itemNum = ubc.boq_table.itemNum 
LEFT OUTER JOIN ubc.submittal ON 
    ubc.summary.itemNum = ubc.submittal.itemNum 
WHERE 
    ubc.summary.projectName = 'proj'  
UNION
SELECT
    ubc.boq_table.itemNum,
    ubc.boq_table.descriptionOfWork,
    ubc.boq_table.unit,
    ubc.boq_table.contractualQuantity,
    ubc.boq_table.priceNum,
    ubc.summary.executedQuantLastSummary, 
    ubc.summary.priceLastWorks, 
    ubc.summary.executedQuantBetw2Sum, 
    ubc.submittal.priceCurrentWorks 
FROM
    ubc.submittal 
LEFT OUTER JOIN ubc.boq_table ON 
    ubc.submittal.itemNum = ubc.boq_table.itemNum 
LEFT OUTER JOIN ubc.summary ON 
    ubc.submittal.itemNum = ubc.summary.itemNum 
WHERE 
    ubc.submittal.projectName = 'proj' 
ORDER BY 
    itemNum;

这段代码是在我选择表格后由 Visual Studio 编写的

 SELECT boq_table1.itemNum, boq_table1.descriptionOfWork, boq_table1.unit, boq_table1.contractualQuantity, boq_table1.priceNum, submittal1.priceCurrentWorks, summary1.executedQuantLastSummary, summary1.executedQuantBetw2Sum, summary1.priceLastWorks
 FROM   (ubc.boq_table boq_table1 INNER JOIN ubc.submittal submittal1 ON boq_table1.ID=submittal1.ID) INNER JOIN ubc.summary summary1 ON boq_table1.ID=summary1.ID
 ORDER BY boq_table1.itemNum

最后一个代码只读我不能编辑

【问题讨论】:

  • 使用 msq 连接器 dev.mysql.com/downloads/connector/net/8.0.html 使用您的数据创建数据集,并将其用作水晶报表的数据源
  • 我已经下载并创建了与我的数据库的连接,以便从 Crystal 报表连接并用数据填充报表
  • 您可以做 2 件事,再次查看数据库选择器,可以选择添加命令或使用连接器和数据读取器来构建您可以使用的数据集。
  • 谢谢,它工作并接受命令中的查询,但我仍然有问题,因为水晶报告包含空值(实际上它没有值或未找到)并且出现以下错误“对象引用未设置为对象的实例”无论如何,请在下面写下您的最后一条评论以标记为已接受,我将在个人帖子中提出我的新问题。
  • 在 mysql 工作台中运行你的查询,看看你是否得到了数据。 Crystal报表的sql命令解释器也可能出现一些查询问题。

标签: c# mysql visual-studio crystal-reports


【解决方案1】:

如果您想将数据获取到水晶报表,您可以做 2 件事,再次查看数据库选择器,可以选择添加命令或使用连接器和数据读取器来构建您可以使用的数据集。

如果不需要大量计算数据,第一个是可以的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多