您如何将vb.net的输出参数传递并接收到mysql

问题描述 投票:0回答:1
Dim Def_Command_MySQL1 As MySql.Data.MySqlClient.MySqlCommand

Def_Command_MySQL1.CommandText = "SET @OutID = 10;"
Def_Command_MySQL1.Parameters.Add(New SqlParameter("@OutID", SqlDbType.Int)).Value = 41
Def_Command_MySQL1.Parameters("@OutID").Direction = ParameterDirection.Output
Def_Command_MySQL1.Parameters.Clear()

IDMax_Update = Def_Command_MySQL1.Parameters("@OutID").Value   

Err.Description“您的SQL语法有误;请检查与您的MariaDB服务器版本相对应的手册,以获取在第1行的'41 = 10'附近使用的正确语法”字符串

mysql parameters output
1个回答
0
投票

首先,您将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()

0
投票

Def_Command_MySQL1.CommandText =“更新ID_Max1 SET IdMax = IdMax +1,@ OutputID = IdMax,其中TypeID> 1”]

错误=您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在第1行的'41 = IdMax where TypeID> 1'附近使用]

??????????????????????????????????????????????????? ??????此查询在SQL Server

上是正确的并正确返回输出变量
© www.soinside.com 2019 - 2024. All rights reserved.