0

SELECT ステートメントを使用してデータベースにクエリを実行し、次の形式で結果を返します: name1,name2,name3

データベース エントリに応じて、この結果には任意の数の名前が含まれる可能性があります: name1,name2...name(n)

このデータを使用して、次のように別のデータベースにクエリを実行したいと思います。

SELECT Name, SerialNo, Model FROM InstrumentTable where ID=1 and InstName IN name1,name2,name3

これを行うには、name1,name2,name3 を ('name1','name2','name3') に変換する必要があります。

文字列を文字列の配列に分割しようとしました

    Dim ref1s As String = cmdf1.ExecuteScalar()
    Dim fields() As String = Nothing
    fields = ref1s.Split(",")

そして、それらを配列に連結します

For i As Integer = 0 To fields.Count - 1
     MsgBox(String.Concat("'", fields(i), "'"))
 Next

しかし、私はまだそれを行う方法を理解できていません。

文字列の最初と最後に角かっこを追加することは、各名前に引用符を追加してコンマで区切るだけで問題になることはありません。

誰でもこれで私を助けることができますか?

4

2 に答える 2

1

user557425、

このような何かがあなたを正しい方向に向けるかもしれません:

Dim lst As List(Of String)
For i As Integer = 0 to fields.Count - 1
    if i = fields.Count - 1 Then
       lst.Add(fields(i) & "'")
    Else
        lst.Add(fields(i) & "','")
    End if
Next

Dim sqlSB As StringBuilder
sqlSB.Append("SELECT * FROM TABLE WHERE BLAH IN(")
For each s As String in lst
     sqlSB.Append(s)
Next

'use the stringbuilder as command text in a SqlCommand...
于 2012-12-13T18:05:30.783 に答える
1

あなたは少し前になりました

For i As Integer = 0 To fields.Count - 1
  fields[i] = String.Concat("'",fields[i],"'")
Next

それで

strValue = fields.Join(',')
于 2012-12-13T18:08:16.390 に答える