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

用户557425,

这样的事情可能会为您指明正确的方向:

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 回答