Как передать и получить выходной параметр из VB. net в mysql - PullRequest
0 голосов
/ 03 апреля 2020
    Dim Def_Command_MySQL1 As MySql.Data.MySqlClient.MySqlCommand

    Def_Command_MySQL1.Parameters.Clear()
    Def_Command_MySQL1.CommandText = "SET @OutID = 10;"
    or
    Def_Command_MySQL1.CommandText = "UPDATE ID_Max1 SET IdMax = IdMax + 1 , @OutID = IdMax + 1 where TypeID>1"
    Def_Command_MySQL1.Parameters.Add(New SqlParameter("@OutID", SqlDbType.Int)).Value = 41
    Def_Command_MySQL1.Parameters("@OutID").Direction = ParameterDirection.Output
    Def_Command_MySQL1.ExecuteNonQuery()
    IDMax_Update = Def_Command_MySQL1.Parameters("@OutID").Value   

Err.Description "В вашем синтаксисе SQL есть ошибка; обратитесь к руководству, соответствующему версии вашего сервера MariaDB, для правильного использования синтаксиса около '41 = 10 'в строка 1 "Строка

или

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

1 Ответ

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

Сначала вы устанавливаете AllowUserVariables в значение True (по умолчанию установлено значение False в строке подключения, см. https://dev.mysql.com/doc/connector-net/en/connector-net-6-10-connection-options.html

секунду, чтобы избавиться от кода параметра, поскольку вы заменяете mysql определяемые пользователем переменные @OutID с фактическим значением , что приводит к вашему сообщению об ошибке.

С

SET @OutID = 10;"

Вы задали mysql пользовательскую переменную @OutID для число 10.

Но в целом следующий код добавляет два параметра в запрос вставки

 Def_Command_MySQL1.CommandText = "INSERT INTO myTable (myColumn1, myColumn2) VALUES (@C1, @C2)"
 Def_Command_MySQL1.Parameters.AddWithValue("@C1", 1)
 Def_Command_MySQL1.Parameters.AddWithValue("@C2", 2)
 Def_Command_MySQL1.ExecuteNonQuery()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...