отделять из-за запятых array, чтобы делать консультацию sql

Я использую array в VB.NET, после перемещаю это query sql выбора следующей формы

SELECT * FROM empresa WHERE factura IN ('" & val & "')

где val - array, но недостаток состоит в том, что каждая стоимость array должна быть отделенной запятыми, чтобы мочь использовать это в предыдущем query: Как я могу делать, чтобы перемещать array, отделенный запятыми?, это форма, в которой я сохраняю мой array

Dim array() As String = {factura}

For Each value As String In array
    Dim val
    If Not String.IsNullOrEmpty(value) Then
     val = value + ","
    Else
    val = value

    End If
    consultaEnvio = db.Query("SELECT * FROM empresa WHERE             factura IN ('" & val & "')")

    For Each A In consultaEnvio
    MsgBox(A("NOMBRE")+A("FACTURA"))
    Next
Next
1
задан 01.07.2016, 19:43
3 ответа

Ты мог бы использовать

Dim array() As String = {factura}

Dim filtroIN As String = String.Join(",", array)

consultaEnvio = db.Query("SELECT * FROM empresa WHERE factura IN (" & filtroIN & ")")

For Each A In consultaEnvio
    MsgBox(A("NOMBRE")+A("FACTURA"))
Next

с String. Join () ты мог бы объединять array с разделителем

3
ответ дан 24.11.2019, 13:57
  • 1
    если я хочу, чтобы данные, которых возвращает query, явились всеми и не одним из-за одного и #191; как он podr и # 237; чтобы делать? – Ivxn 01.07.2016, 20:17
  • 2
    но чтобы показывать их все, ты был бы должен распределять их в контроль списка – Leandro Tuttini 01.07.2016, 21:06
  • 3
    ahhh ok кредит это попробовал – Ivxn 01.07.2016, 21:09

Уже тебе ответил Леандро превосходного способа, я достигаю с другим примером того же типа.

Dim sqlquery As String
Dim sqlquerys As New ArrayList()

'Там вы определяете сначала "заголовок" консультации и array, который ты используешь.

sqlquery = "INSERT INTO FERIANTES(Nombre, Apellido) VALUES "
For x = 0 To ListaDeFeriantes.Count - 1
Dim CONSULTA As String = ""
CONSULTA = "('" & ListaDeFeriantes.Nombre & "," & ListaDeFeriantes.Apellido & ")"
sqlquerys.Add(CONSULTA)
Next
sqlquerys.ToArray()
Dim strCommand As String = [String].Join(",", sqlquerys.ToArray())

'И в конце концов ты объединишь консультацию с:

Dim ConsultaFinal as String = sqlquery & strCommand
0
ответ дан 24.11.2019, 13:57

Как только была наполнена твоя договоренность deberГ-схвати пробегать это и создавать твою цепь, которую ты посылал внутри in

Dim cadenaIn As String =  ""
For Each value As String In array
    cadenaIn = cadenaIn & value & ","
next    
cadenaIn = left(cadenaIn,(Len(cadenaIn)-1))'aca eliminamos la coma del ultimo elemento
consultaEnvio = db.Query("SELECT * FROM empresa WHERE factura IN ('" & cadenaIn & "')")

For Each A In consultaEnvio
    MsgBox(A("NOMBRE")+A("FACTURA"))
Next
0
ответ дан 24.11.2019, 13:57
  • 1
    я думаю, что ответ es.stackoverflow.com/users/2600/leandro-tuttini более элегантный и более оптимальный – Javier Solis Guzman 01.07.2016, 20:13
  • 2
    Солнце и # 237; s Гусман, если я хочу, чтобы данные, которых возвращает query, явились всеми и не одним из-за одного и #191; как он podr и # 237; чтобы делать? – Ivxn 01.07.2016, 20:26
  • 3
    ты был бы должен делать равный цикл, в котором ты наполнял бы переменную со структурой, которую ты хочешь показать, что-то похожее на то, что я делаю, чтобы его форматировать договоренность – Javier Solis Guzman 01.07.2016, 20:44
  • 4
    уже я попробовал его, но он у меня не остается – Ivxn 01.07.2016, 20:50
  • 5
    Dim, оказанный Схвати Стринг = " " Фор Эач A последованный In consultaEnvio = результат & " Имя: " & В (" NOMBRE") & " Factura" & В (" FACTURA")) Некст Мсгбокс (результат) – Javier Solis Guzman 01.07.2016, 21:05