Извините, если это просто или просто, я новичок в 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
Есть идеи?
@Steve хорошо, во-первых, спасибо, и я добавил имя таблицы сейчас в from, но я не знаю, что бы я вставил в него, я пытался вставить в него (username = @username), но это не работает, даже если я использую (byVal имя пользователя в виде строки), а также он говорит (аргумент не указан для параметра) Я знаю, что вы, возможно, не захотите мне его кормить, но это мой первый раз, когда я пытаюсь удалить что-то в sql
Синтаксис, необходимый для удаления строки в таблице базы данных, состоит как минимум из трех частей.
Итак, это такая строка: 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
(Таблица и имя пользователя - это вымышленные имена, потому что мы не знаем, какова реальная схема вашей базы данных)
Другие вещи, которые я изменил:
Прежде всего, вам нужно следовать базовому учебнику по SQL. После оператора DELETE нет * (кроме ms-access), тогда после FROM вам нужно имя таблицы и оператор WHERE (если вы не хотите удалить ВСЮ таблицу). Наконец, вы не можете ожидать, что синтаксический анализатор Sql знает что-либо о том, что такое представление сетки данных, и интерпретирует вашу строку как ссылку на выбранные строки вашей сетки данных.