Как удалить все строки в таблице оракулов на основе значений в текстовом поле vb.net?Этот код удаляет только первую строку из текстового поля в таблице оракулов:
For Each name As String In TextBox1.Text.Split(vbNewLine)
str = "Delete from table_1 where column1 in ('" & name & "')"
Где я ошибаюсь с этим кодом?
Imports Oracle.DataAccess.Client
Imports Oracle.DataAccess.Types
Public Class Form1
Private cmd As OracleCommand
Private da As OracleDataAdapter
Private cb As OracleCommandBuilder
Private ds As DataSet
Private Sub Connect_Click(sender As Object, e As EventArgs) Handles Connect.Click
Dim conn As New OracleConnection
Dim cmd As New OracleCommand
cmd.CommandType = CommandType.Text
Dim lstParameterValues As New List(Of String)
Dim HardReturn As String() = {vbNewLine}
Dim query As New StringBuilder("Delete from table_1")
Try
If conn.State = ConnectionState.Closed Then
conn.ConnectionString = "User Id=" + "fghfhfh" &
";Password=" + "353525346" &
";Data Source=" + " dfgdg "
conn.Open()
End If
Connect.Enabled = False
For Each name As String In TextBox1.Text.Split(HardReturn, StringSplitOptions.RemoveEmptyEntries)
lstParameterValues.Add(name)
Next
Select Case lstParameterValues.Count
Case 1
query.Append(" WHERE column1 = @column1")
cmd.Parameters.name("@column1", lstParameterValues(0))
Case Is > 1
query.Append(" WHERE column1 IN (")
Dim paramName As String
For index As Integer = 0 To lstParameterValues.Count - 1 Step 1
paramName = "@column1" & index
If index > 0 Then
query.Append(", ")
End If
query.Append(paramName)
cmd.Parameters.AddWithValue(paramName, lstParameterValues(index))
Next index
query.Append(")")
End Select
cmd = New OracleCommand(str, conn)
da = New OracleDataAdapter(cmd)
cb = New OracleCommandBuilder(da)
ds = New DataSet()
da.Fill(ds)
Finally
Connect.Enabled = True
End Try
End Sub
End Class
Код улучшен как комментарии @mary, но я получил следующие ошибки:
- BC30456 'name' не является членом 'OracleParameterCollection'
- BC30002 Тип 'StringBuilder' не определен.
- BC30456 'AddWithValue' не является членом 'OracleParameterCollection'.
- BC30455 Аргумент не указан для параметра 'Number' из 'Public FunctionStr (число как объект) как строка '.