Как удалить строку в sql с помощью vb.net

Извините, если это просто или просто, я новичок в sql и таблицах, поэтому я просто пытаюсь понять это. В основном я пытаюсь удалить строку, которую выбирает пользователь Заставив их щелкнуть строку, а затем нажать кнопку удаления, но я не знаю, как это должно выглядеть, я пробовал несколько разных способов, но ни один из них не работает. Ошибка не появляется, но просто не удаляет строку

 Private Sub DeleteSelectedUsers()
    Dim connection As SqlConnection = New SqlConnection()
    connection.ConnectionString = "Data Source=GERARD-PC\SQLEXPRESS; Initial Catalog=TestDB;User ID=AccountsUser;Password=password123"

    connection.Open()

    Dim adp As SqlDataAdapter = New SqlDataAdapter _
    ("Delete * from dgrdUsers.SelectedRows(0).Cells", connection)




End Sub
Private Sub btnDelete_Click(sender As Object, e As EventArgs) Handles btnDelete.Click
    Try

        Dim username As String = dgrdUsers.SelectedRows(0).Cells.Item("Username").Value.ToString()

        If (MessageBox.Show(Me, "Do you want to delete user " & username & "?", "Confirm Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes) Then
            DeleteSelectedUsers()
        End If
    Catch ex As Exception

    End Try
End Sub

Есть идеи?

Прежде всего, вам нужно следовать базовому учебнику по SQL. После оператора DELETE нет * (кроме ms-access), тогда после FROM вам нужно имя таблицы и оператор WHERE (если вы не хотите удалить ВСЮ таблицу). Наконец, вы не можете ожидать, что синтаксический анализатор Sql знает что-либо о том, что такое представление сетки данных, и интерпретирует вашу строку как ссылку на выбранные строки вашей сетки данных.

Steve 08.02.2023 11:22

@Steve хорошо, во-первых, спасибо, и я добавил имя таблицы сейчас в from, но я не знаю, что бы я вставил в него, я пытался вставить в него (username = @username), но это не работает, даже если я использую (byVal имя пользователя в виде строки), а также он говорит (аргумент не указан для параметра) Я знаю, что вы, возможно, не захотите мне его кормить, но это мой первый раз, когда я пытаюсь удалить что-то в sql

Dylaka83 08.02.2023 11:34
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
2
62
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Синтаксис, необходимый для удаления строки в таблице базы данных, состоит как минимум из трех частей.

  • Команда УДАЛИТЬ
  • Оператор FROM для определения таблицы, в которой должно выполняться действие удаления.
  • Условие WHERE для идентификации записи (или записей) для удаления

Итак, это такая строка: DELETE FROM tablename WHERE condition
и применительно к вашему коду вы получите это.

Private Sub DeleteSelectedUsers(userName as String)
    Using connection As SqlConnection = New SqlConnection()
       connection.ConnectionString = "...."
       connection.Open()
       Dim cmd As SqlCommand = New SqlCommand _
          ("DELETE FROM Table WHERE userName = @user", connection)
       cmd.Parameters.Add("@user", SqlDbType.NVarChar).Value = userName
       cmd.ExecuteNonQuery()
   End Using
End Sub

(Таблица и имя пользователя - это вымышленные имена, потому что мы не знаем, какова реальная схема вашей базы данных)

Другие вещи, которые я изменил:

  • Соединение создается внутри блока using, чтобы убедиться, что закрытие и удаление происходит даже в случае ошибок
  • Имя удаляемого пользователя должно быть передано в качестве параметра функция
  • Нет необходимости использовать адаптер, когда вам просто нужно выполнить один SqlCommand
  • Запрос не объединяет строки для построения команды, а использует параметр, добавленный в саму команду и указывающий тип для данные, соответствующие типу в таблице базы данных

Другие вопросы по теме