私はリストボックス&複数のフィルタをcheckboxListとして持っています。すべて正常に動作しますが、Like節は正しく動作しません。それはmySQLとVB.Netで同様のクエリを構造化
select * from products where category Like '% Apparels, Bluetooth%'
以下のようなものです。しかし、それは私がきちんと私のクエリを構築するために私のコードを変更するにはどうすればよいこの
select * from products where category Like '% Apparels%' or category Like '%Bluetooth%'
ようにすべきですか?ですから、あなたがここに何ができるかcategoryFilter.Items
をループでcategoryCondition="Apparels, Bluetooth"
を取得している
Public Function buildWhereClause() As String
Dim constr As String = ConfigurationManager.ConnectionStrings("conio").ConnectionString
Dim query As String = "select * from products"
Dim joiner As String = " "
Dim condition As String = String.Empty
Dim priceCondition As String = String.Empty
For i = 0 To priceFilter.Items.Count - 1
If priceFilter.Items(i).Selected Then
Dim price As String = priceFilter.Items(i).ToString
priceCondition = String.Concat(priceCondition, joiner, String.Format("'{0}'", price))
If joiner = " " Then joiner = ", "
End If
Next
Dim categoryCondition As String = String.Empty
joiner = " "
For i = 0 To categoryFilter.Items.Count - 1
If categoryFilter.Items(i).Selected Then
Dim category As String = categoryFilter.Items(i).ToString
categoryCondition = String.Concat(categoryCondition, joiner, String.Format("{0}", category))
If joiner = " " Then joiner = ", "
End If
Next
Dim whereClause As String = String.Empty
joiner = " where "
If Not String.IsNullOrEmpty(priceCondition) Then
whereClause = String.Concat(whereClause, joiner, String.Format(" price_range IN ({0})", priceCondition)) ' and sub_category IN ({0})", condition.Substring(0, condition.Length - 1))
joiner = " and "
End If
If Not String.IsNullOrEmpty(categoryCondition) Then
whereClause = String.Concat(whereClause, joiner, String.Format(" category Like '%{0}%'", categoryCondition))
joiner = " and "
End If
'If Not String.IsNullOrEmpty(brandCondition) Then
' whereClause = String.Concat(whereClause, joiner, String.Format(" sub_category in ({0})", categoryCondition))
' joiner = " and "
'End If
Dim masterClause As String = String.Empty
masterClause = (query & whereClause)
End Sub
現在、あなたが直面している難しさは何ですか?あなたが得ている最終的な質問は何ですか? –
@ un-lucky私の投稿の最初に見てください私が言及した最初の質問は、私が自分のコードで得ているものです。 2番目のクエリは私が実際に望むものです。自分のコードで2番目のクエリを構築する手助けはできますか? – SUN
あなたは私の質問に答えません。あなたが現在のコードで直面している難問は何ですか?あなたが 'query'のために得ている現在の値は何ですか? –