MySQL / VB.NET (Winform) - как правильно использовать @var? - PullRequest
0 голосов
/ 25 марта 2019

Я разрабатываю последовательность в MySQL и VB.NET, в которой при удалении записи удаляется номер, который ее идентифицирует, и помещает последовательность от 1 до 'n', последовательность выглядит следующим образом.

это инструкция для MySQL.

SET @rownum=0;
UPDATE id_line t, (SELECT @rownum:=@rownum+1 rownum, id_line.* FROM id_line WHERE id_line.line_name=59999 and id_line.line_no<>0) r 
SET t.line_no = r.rownum 
WHERE (t.id_line_b = r.id_line_b)

в VB.net я использую это

cmdB = New MySqlCommand("SET @rownum=0 UPDATE id_line t, (SELECT @rownum=:@rownum+1 rownum, id_line.* FROM id_line WHERE id_line.line_name='" & TextBox1.Text & "' and id_line.line_no<>0) r ) SET t.line_no = r.rownum WHERE(t.id_line_b = r.id_line_b)", conn)

но VB отправляет эту ошибку

У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с 'UPDATE id_line t, (SELECT @rownum =: @ rownum + 1 rownum, id_line. * FROM id_lin' в строке 1

Не могли бы вы помочь мне, пожалуйста, в этой ошибке?

Обновлено 1: Это мое строковое соединение.

Public conString As String = "Data Source=server_one;port=3306;Initial Catalog=test_db;User Id=root;password=root;Allow User Variables=True"

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

Я нашел ошибку, скобку, она была неуместна, это правильный код.

cmdB = New MySqlCommand("SET @rownum:=0; UPDATE id_line t, (SELECT @rownum:=@rownum+1 rownum, id_line.* FROM id_line WHERE id_line.line_name='" & TextBox1.Text & "' and id_line.line_no<>0) r SET t.line_no = r.rownum WHERE(t.id_line_b = r.id_line_b)", conn)

Спасибо всем за внимание и поддержку.

С уважением.

0 голосов
/ 25 марта 2019

другой лучший способ создания mysql procedure для удаления запроса данных mysql

https://www.tutorialspoint.com/What-is-stored-procedure-and-how-can-we-create-MySQL-stored-procedures

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...