如何将参数传递给存储过程

时间:2012-10-22 11:56:03

标签: vb.net stored-procedures crystal-reports

使用Crystal Report 9和VB.Net

报告正在运行存储过程,我想将数据传递给存储过程。

怎么做?

在VB6中,我确实喜欢这个。

Report.ReportFileName = REPPATH & "\Detail.rpt"
Report.StoredProcParam(0) = Did
Report.StoredProcParam(1) = Deed
Report.Action = 1

如何在vb.net中执行此操作?

1 个答案:

答案 0 :(得分:2)

我认为以下内容应该有效:

SetDataSource有4个覆盖,它们都将IEnumerable like对象作为参数。但是这已经用CR 13 for VS 2010完成了......我希望你能找到像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)

相关问题