Crystal Reports,Visual Basic 2010和mysql报告

问题描述:

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

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行,但我不知道我还能做什么。我很感谢你对这个问题的关注和合作。

+0

你有没有检查http://stackoverflow.com/questions/8676448/my-crystal-report-is-not-getting-refreshed-while-passing-parameter – haraman

由于documentation说,你需要一个记录集或数据集传送到ReportEngine,而你是通过其返回一个字符串

reporte1.SetDataSource(lector1.GetString(0)) 

更改语句使用DataReader应该解决问题的DataReader的场如

reporte1.SetDataSource(lector1) 

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

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

编辑:使用DataSet中

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 post connecting-to-a-mysql-db-with-c-sharp-need-some-with-datasets

+0

嗨,谢谢你的答案。我已经尝试过 reporte1.SetDataSource(lector1) 但出现此错误: 错误重载解析,因为没有访问'SetDataSource'函数更具体的这些参数 请问我可以如何使用DataSet或哪里可以找到这个。非常感谢你。 –

+0

检查DataSet的更新 – haraman