Member 13764649 Ответов: 1

Удаление строк в oracle из VB.NET текстовое поле


Как удалить все строки в таблице oracle на основе значений в vb.net текстовое поле, текстовое поле содержит значения из столбца 1

Что я уже пробовал:

Этот код удаляет только первую строку из текстового поля в таблице oracle :

For Each name As String In TextBox1.Text.Split(vbNewLine)
str = "Delete from table_1 where column1 in ('" & name & "')"

1 Ответов

Рейтинг:
2

Richard Deeming

Предполагая открытый OracleConnection экземпляр называется YourConnectionHere:

Using command As New OracleCommand()
    command.Connection = YourConnectionHere
    
    Dim sb As New StringBuilder("DELETE FROM table_1 WHERE column1 IN (")
    Dim valuesToDelete As String() = TextBox1.Text.Split(vbNewLine)
    For i As Integer = 0 To valuesToDelete.Length - 1
        If i > 0 Then sb.Append(", ")
        
        Dim name As String = "@p" & i
        sb.Append(name)
        command.Parameters.AddWithValue(name, valuesToDelete(i))
    Next
    sb.Append(")");
    
    command.CommandText = sb.ToString()
    command.ExecuteNonQuery()
End Using

В качестве альтернативы используйте Щеголеватый[^]:
Dim valuesToDelete As String() = TextBox1.Text.Split(vbNewLine)
YourConnectionHere.Execute("DELETE FROM table_1 WHERE column1 IN (@ValuesToDelete)", New With { .ValuesToDelete = valuesToDelete })