【问题标题】:Report with Crystal Reports, visual basic 2010 and mysql使用 Crystal Reports、visual basic 2010 和 mysql 生成报表
【发布时间】:2015-10-20 05:35:42
【问题描述】:

我正在尝试在 Crystal Reports 中创建报表,但是当我将参数分配给报表时,它不显示选择查询的结果。它显示了表的所有列,尽管选择查询的结果是正确的。这是我的代码:

    Dim ulogueado, consulta As String       
    consulta = "select nombre from usuario where usuario = @user"
    Dim lector1 As MySqlDataReader
    Dim comando As New MySqlCommand(consulta, conector)
    comando.Parameters.AddWithValue("@user", usuario_conectado)
    Try
        lector1 = comando.ExecuteReader()
        If lector1.Read Then
            ulogueado = lector1.GetString(0)
        End If
        Dim reporte1 As New CrystalReport3
        reporte1.SetDataSource(lector1.GetString(0))
        reportes1.CrystalReportViewer1.ReportSource = reporte1
        reportes1.CrystalReportViewer1.RefreshReport()
    Catch ex As Exception
    End Try
    reportes1.Show()

我几乎可以肯定问题可能出在 SetDataSource 行,但我不知道我还能做什么。感谢您对此问题的所有关注和合作。

【问题讨论】:

标签: mysql vb.net crystal-reports


【解决方案1】:

正如documentation 所说,您需要将 RecordSet 或 DataSet 传递给 ReportEngine,而您正在传递返回 String 的 DataReader 字段

reporte1.SetDataSource(lector1.GetString(0))

改语句使用DataReader应该可以解决问题如

reporte1.SetDataSource(lector1)

我没有使用 MySqlDataReader 作为数据源,但使用 DataSet 生成效果很好的报告。

您需要检查的另一件事是上面我的comment 中提到的已保存数据。如果您在报告中使用参数,那么还有其他方法可以将值传递给这些参数,请参阅how-to-pass-values-to-two-different-parameters

编辑:使用数据集

Dim ulogueado, consulta As String       
consulta = "select nombre from usuario where usuario = @user"
Dim comando As New MySqlCommand(consulta, conector)
comando.Parameters.AddWithValue("@user", usuario_conectado)
Dim da As MySqlDataAdapter = New MySqlDataAdapter()
Dim ds As DataSet = New DataSet()
da.SelectCommand = comando
Try
    da.Fill(ds, "usuario")
    Dim reporte1 As New CrystalReport3
    reporte1.SetDataSource(ds)
    reportes1.CrystalReportViewer1.ReportSource = reporte1
    reportes1.CrystalReportViewer1.RefreshReport()
Catch ex As Exception
    'Check for errors here
    'MsgBox(ex.Message)
End Try
reportes1.Show()

有关 DataAdapters、DataSet 的更多详细信息,您可以阅读这篇 SO 帖子connecting-to-a-mysql-db-with-c-sharp-need-some-with-datasets

【讨论】:

  • 您好,感谢四位您的回答。我在 reporte1.SetDataSource(lector1) 之前尝试过这个,但出现了这个错误:错误重载解析,因为访问的 'SetDataSource' 函数中没有一个对这些参数更具体,你能告诉我如何使用 DataSet 或在哪里我能找到这个吗?非常感谢。
猜你喜欢
  • 2011-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多