如何使用vb.net将sql值设置为crystal报表参数

如何使用vb.net将sql值设置为crystal报表参数,sql,vb.net,visual-studio,parameters,crystal-reports,Sql,Vb.net,Visual Studio,Parameters,Crystal Reports,如何将sql值传递给crystal report参数?我在这里呆了大约一个星期。请帮帮我,谢谢大家 Dim header As New SqlCommand("SELECT SalesOrder.salesorder_id, SalesOrder.sales_code, Delivery.driver_code, SalesOrder.invoice_dt, Delivery.remark, SalesOrder.customer_icno, Delivery.c_name, Delivery.

如何将sql值传递给crystal report参数?我在这里呆了大约一个星期。请帮帮我,谢谢大家

Dim header As New SqlCommand("SELECT SalesOrder.salesorder_id, SalesOrder.sales_code, Delivery.driver_code, SalesOrder.invoice_dt, Delivery.remark, SalesOrder.customer_icno, Delivery.c_name, Delivery.c_hpno, Delivery.address FROM SalesOrder,Delivery WHERE SalesOrder.salesorder_id = Delivery.salesorder_id AND SalesOrder.salesorder_id=" & checkInvoiceReceiptSalesOrderNo.Text, conn)
Using readerObj As SqlClient.SqlDataReader = header.ExecuteReader
    While readerObj.Read
        Dim paramFields As New ParameterFields()
        Dim paramField As New ParameterField()
        Dim discreteVal As New ParameterDiscreteValue()

        paramField.ParameterFieldName = "son"
        Dim str As String
        str = readerObj("salesorder_id").ToString()
        discreteVal.Value = str
        paramField.CurrentValues.Add(discreteVal)
        paramFields.Add(paramField)
    End While
End Using

您可以使用此代码。您可以传递参数值。在此处设置值
ParameterDiscreteValue.value=“您的参数值”
并在此处设置参数名称
ParameterFieldDefinition=ParameterFieldDefinitions(“Crystal Report的参数名称”)

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim reportViewer As ReportViewer = New ReportViewer()
    Dim cryRpt As ReportDocument = New ReportDocument()
    cryRpt = New CrystalReport1()
    Dim ParameterFieldDefinitions As ParameterFieldDefinitions
    Dim ParameterFieldDefinition As ParameterFieldDefinition
    Dim ParameterValues As ParameterValues = New ParameterValues()
    Dim ParameterDiscreteValue As ParameterDiscreteValue = New ParameterDiscreteValue()
    ParameterDiscreteValue.Value = "Your Parameter Value"
    ParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields
    ParameterFieldDefinition = ParameterFieldDefinitions("Parameter Name of Crystal Report")
    ParameterValues = ParameterFieldDefinition.CurrentValues
    ParameterValues.Clear()
    ParameterValues.Add(ParameterDiscreteValue)
    ParameterFieldDefinition.ApplyCurrentValues(ParameterValues)
    reportViewer.crystalReportViewer1.ReportSource = cryRpt
    reportViewer.crystalReportViewer1.Refresh()
    reportViewer.ShowDialog()

End Sub