使用 Crystal Report 9 和 VB.Net
报告正在通过存储过程运行,我想将数据传递给存储过程。
怎么做?
在VB6中,我确实喜欢这个。
Report.ReportFileName = REPPATH & "\Detail.rpt"
Report.StoredProcParam(0) = Did
Report.StoredProcParam(1) = Deed
Report.Action = 1
如何在 vb.net 中做到这一点?
使用 Crystal Report 9 和 VB.Net
报告正在通过存储过程运行,我想将数据传递给存储过程。
怎么做?
在VB6中,我确实喜欢这个。
Report.ReportFileName = REPPATH & "\Detail.rpt"
Report.StoredProcParam(0) = Did
Report.StoredProcParam(1) = Deed
Report.Action = 1
如何在 vb.net 中做到这一点?
我认为类似以下的方法应该有效:
SetDataSource 有 4 个覆盖,它们都将 IEnumerable 类对象作为参数。但这已经在 VS 2010 的 CR 13 上完成了……我希望你能找到类似 CR 9 的东西。
Dim report As New CrystalReport1
Dim sqla = New SqlDataAdapter()
sqla.SelectCommand.Connection = New SqlConnection(sConnectionString)
sqla.SelectCommand = New SqlCommand("EXEC storedProcName @a, @b, @c")
sqla.SelectCommand.Parameters.Add("@a", paramA)
sqla.SelectCommand.Parameters.Add("@a", paramB)
sqla.SelectCommand.Parameters.Add("@a", paramC)
report.SetDataSource(sqla)
//'If you do not have parameters, you may use :
report.SetDataSource(New SqlDataAdapter("EXEC storedProcName ", sConnectionString))
report.Refresh()
编辑: sqla.SelectCommand.Parameters.Add("@a", paramA)
在 CR13 版本中折旧。sqla.SelectCommand.Parameters.AddWithValue("@a", paramA)
改为使用。