Member 13320940 Ответов: 2

Как удалить записи из нескольких элементов datagridview


Я хочу удалить данные из двух gridviews(используя внешний ключ), когда я нажимаю кнопку!..Это то, что я пробовал и дает мне ошибку "неправильный синтаксис рядом с "внутренним"".- Помоги мне разобраться.

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

Private Sub Button1_Click(Byval.....
Dim command as new SqlCommand("Delete From Students Inner Join Classes ON Students.StudentID=Classes.StudentID Where Students.StudentID='" & Registered.CurrentRow.Cells(1).Value & "'",connection)

2 Ответов

Рейтинг:
1

Afzaal Ahmad Zeeshan

Возможно, вам нужно создать псевдоним запроса, а затем сделать это, потому что он должен знать, что вы удаляете. Ваш запрос будет выглядеть примерно так,

-- DELETE from both tables, s and c.
-- Also, please alias the rest of the query properly
DELETE s, c
FROM Students s
INNER JOIN Classes c ON Students.StudentID = Classes.StudentID 
WHERE Students.StudentID = 12345
Это подскажет синтаксическому анализатору SQL фактически проанализировать запрос и узнать, что и как удалить.

Примечание: Я не проверял остальную часть запроса на алиасинг, поэтому, пожалуйста, проверьте это на своем собственном конце. Но сглаживание решит проблему.


Member 13320940

Спасибо, что ответили мне...но я все равно получаю ошибку " неправильный синтаксис рядом "," "

Afzaal Ahmad Zeeshan

Я уже упоминал, что вы хотите добавить некоторые псевдонимы, возможно, вы хотите использовать s.StudentId = c.StudentId и это заставит его работать. Поскольку вы используете псевдонимы, дальнейший запрос должен следовать этой семантике.

Member 13320940

Я тоже пробовал ... до сих пор не работает : (та же ошибка
Разве мне не нужно использовать "как" для псевдонимов?

Рейтинг:
1

Patrice T

Не решение вашего вопроса, а еще одна проблема, которая у вас есть.
Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь уязвимости под названием "SQL injection", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа рухнет. Если пользователь вводит имя типа "Брайан О'Коннер", это может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция-Википедия[^]
SQL-инъекция[^]