如何删除日期列在Rdlc报告中给出错误?并希望在Report中显示mysql日期

时间:2012-07-28 09:33:43

标签: asp.net rdlc

我正在使用asp.net和mysql。在Rdlc报告中,我无法显示日期。

首先它给出了一个错误,比如无法将mysql日期转换为system.date。所以我添加Allow Zero Datetime = true;在连接字符串中。现在报告显示......

但它在Report列中显示#Error。

DataSet Name是 - mcubicDataSet.xsd DataDable Name是 - fo_reserv

在VS2010中预览数据: -

enter image description here

Rdlc报告: -

enter image description here

2 个答案:

答案 0 :(得分:0)

有两种情况发生在我身上,以及3种解决方案

  1. rdlc报告绑定到Visual Studio通过MySql连接器生成的数据集。有时,创建的数据集的日期列包含 MySqlDateTime ,而不是默认的 System.DateTime 。 要查看此Open Your Report.rdlc,然后查看报告数据(Ctrl + Alt + D)以查看dataSet,右键单击属性,然后检查列中的数据类型。enter image description here 转到表示数据集来源的数据源的文件,然后在编码窗口中打开设计器文件。在我的情况下,我的名为pos_dbDataSet.xsd,名为pos_dbDataSet.Designer.cs的设计器文件。打开它后,您可以在日期dataTypes上执行字符串替换(Ctrl + H) MySql.Data.Types.MySqlDateTime relpace: System.DateTime 。 请注意仅替换当前文档中的所有内容。虽然此更改可能无法在报表数据集中重新生成,但报表应该运行。
  2. enter image description here 2.使用DataSource配置向导重建DataSource / Datasets。

    1. (不太可能)rdlc报告使用操作系统的日期格式,因此MySql格式和OS格式之间可能存在冲突。解决这个问题的原因是在我的计算机的日历或区域设置上更改了我的日期时间格式,以更好地匹配数据库格式。我使用英国格式并改为美国格式。
    2. Calender/Format Settings

答案 1 :(得分:-1)

将数据库中的字段类型从datetime更改为text。由于字段类型不匹配而发生此错误。