Mysql 如果p(1).Value“”,则dscmd.SelectCommand.Parameters.Add(p(1)) 如果p(2).Value“”,则dscmd.SelectCommand.Parameters.Add(p(2)) 如果p(3).Value“”
如果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.DefaultMysql 如果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
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