Mysql 如果p(1).Value“”,则dscmd.SelectCommand.Parameters.Add(p(1)) 如果p(2).Value“”,则dscmd.SelectCommand.Parameters.Add(p(2)) 如果p(3).Value“”

Mysql 如果p(1).Value“”,则dscmd.SelectCommand.Parameters.Add(p(1)) 如果p(2).Value“”,则dscmd.SelectCommand.Parameters.Add(p(2)) 如果p(3).Value“”,mysql,vb.net,combobox,crystal-reports,Mysql,Vb.net,Combobox,Crystal Reports,如果p(1).Value“”,则dscmd.SelectCommand.Parameters.Add(p(1)) 如果p(2).Value“”,则dscmd.SelectCommand.Parameters.Add(p(2)) 如果p(3).Value“”,则dscmd.SelectCommand.Parameters.Add(p(3)) dscmd.Fill(ds,“PAYPRODUCTTOTAL”) con.Close() Dim cryds作为新的所有数据库报告 cryds.SetData

如果p(1).Value“”,则dscmd.SelectCommand.Parameters.Add(p(1)) 如果p(2).Value“”,则dscmd.SelectCommand.Parameters.Add(p(2)) 如果p(3).Value“”,则dscmd.SelectCommand.Parameters.Add(p(3)) dscmd.Fill(ds,“PAYPRODUCTTOTAL”) con.Close() Dim cryds作为新的所有数据库报告 cryds.SetDataSource(ds.Tables(0)) CrystalReportViewer1.ReportSource=cryds CrystalReportViewer1.Refresh() 特例 MessageBox.Show(例如Message) 结束尝试 如果结束 如果结束 Me.Cursor=Cursors.Default
Ok。我稍后会尝试…感谢您共享存储库,但我只有一个问题,“StringBuilder”未定义??有什么建议吗?导入System.Text应有帮助:)您不必使用StringBuilder,只需将字符串连接在一起即可。注意:将sql语句拼凑在一起时,始终确保在开头和结尾都包含空格。和field=value“vs”和field=value“OK”只需插入Imports System.Text
If ComboBox1.Text = "All" Then
            Me.Cursor = Cursors.WaitCursor
            Try
                Dim ds As New DataSet
                Dim query As String
                query = "select * from product order by id_maker asc, id_types asc, id_scale asc,name asc"
                Dim dscmd As New MySqlDataAdapter(query, con)
                dscmd.Fill(ds, "PAYPRODUCTTOTAL")
                con.Close()
                Dim cryds As New All_Database_Report
                cryds.SetDataSource(ds.Tables(0))
                CrystalReportViewer1.ReportSource = cryds
                CrystalReportViewer1.Refresh()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        ElseIf ComboBox1.Text <> "All" Then
            If ComboBox2.Text = Nothing Then
                MsgBox("Select a Maker", MsgBoxStyle.Exclamation)
            ElseIf ComboBox3.Text = Nothing Then
                MsgBox("Select a Type", MsgBoxStyle.Exclamation)
            ElseIf ComboBox4.Text = Nothing Then
                MsgBox("Select a Scale", MsgBoxStyle.Exclamation)
            Else
                Try
                    Dim ds As New DataSet
                    Dim query As StringBuilder = New StringBuilder()

                    p(0) = New MySqlParameter("@License", MySqlDbType.String)
                    p(0).Value = ComboBox1.Text
                    p(1) = New MySqlParameter("@Maker", MySqlDbType.String)
                    p(1).Value = ComboBox2.Text
                    p(2) = New MySqlParameter("@Type", MySqlDbType.String)
                    p(2).Value = ComboBox3.Text
                    p(3) = New MySqlParameter("@Scale", MySqlDbType.String)
                    p(3).Value = ComboBox4.Text

                    With query
                        .Append("select * from product WHERE 1=1 ")
                        If p(0).Value <> "" Then .Append(" AND license = @License ")
                        If p(1).Value <> "" Then .Append(" AND id_maker = @Maker ")
                        If p(2).Value <> "" Then .Append(" AND id_types =  @Type ")
                        If p(3).Value <> "" Then .Append(" AND id_scale =  @Scale ")
                        .Append(" order by id_maker asc, id_types asc, id_scale asc,name asc ")
                    End With

                    Dim dscmd As New MySqlDataAdapter(query.ToString(), con)
                    If p(0).Value <> "" Then dscmd.SelectCommand.Parameters.Add(p(0))
                    If p(1).Value <> "" Then dscmd.SelectCommand.Parameters.Add(p(1))
                    If p(2).Value <> "" Then dscmd.SelectCommand.Parameters.Add(p(2))
                    If p(3).Value <> "" Then dscmd.SelectCommand.Parameters.Add(p(3))
                    dscmd.Fill(ds, "PAYPRODUCTTOTAL")
                    con.Close()
                    Dim cryds As New All_Database_Report
                    cryds.SetDataSource(ds.Tables(0))
                    CrystalReportViewer1.ReportSource = cryds
                    CrystalReportViewer1.Refresh()
                Catch ex As Exception
                    MessageBox.Show(ex.Message)
                End Try
            End If
        End If

        Me.Cursor = Cursors.Default