Передайте и получите выходной параметр от VB. NET до MySQL - PullRequest
1 голос
/ 03 апреля 2020

Этот код работает правильно и ОК на сервере SQL.

Пожалуйста, преобразуйте этот код в MySQL.

При запуске на MySQL выдается следующая ошибка.

Ошибка = У вас есть ошибка в вашем SQL синтаксис; проверьте руководство, соответствующее вашей версии сервера MariaDB, для правильного синтаксиса, чтобы использовать около '1 = IdMax + 1, где TypeID> 1' в строке 1

Public Def_Command_SQL1 As SqlClient.SqlCommand
Def_Command_SQL1.CommandText = "UPDATE ID_Max1 SET IdMax = IdMax + 1 , @OutID = IdMax + 1 where TypeID>1"
Def_Command_SQL1.Parameters.Clear()   
Def_Command_SQL1.Parameters.Add(New SqlParameter("@OutID", SqlDbType.Int))=1
Def_Command_SQL1.Parameters("@OutID").Direction = ParameterDirection.Output
Def_Command_SQL1.ExecuteNonQuery()
IDMax_Update = Def_Command_SQL1.Parameters("@OutID").Value   

1 Ответ

0 голосов
/ 04 апреля 2020

Таким образом, вы можете делать то, что хотите, а не в mysql.

Ваш серверный запрос sql существенно увеличивает IdMax с номером 1, а затем переводит это увеличенное число обратно в vb net.

Это не работает в mysql.

И я действительно не понимаю, что вы получаете, когда видите обновление IdMax.

Для этого я должен увидеть таблицу, чтобы полностью понять, что пытаются сделать ..

Что вы можете сделать, это

Первый

ВЫБЕРИТЕ МАКС. (IdMax) + 1 ОТ ID_Max1, ГДЕ TypeID> 1 ;

Получите наибольшее число, увеличьте его и сохраните в IDMax_Update

Здесь объясняется , как вы сохраняете результат в переменной

И затем обновите строку или строки с помощью

ОБНОВЛЕНИЕ ID_Max1 SET IdMax = IdMax WHERE TypeID> 1;

Вы выполняете 2 запроса и получаете тот же результат

...