首页 > 解决方案 > 您如何将输出参数从 vb.net 传递和接收到 mysql

问题描述

    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 服务器版本相对应的手册,以在第 1 行的 '41 = 10' 附近使用正确的语法" 字符串

或者

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

标签: mysqlvb.netparametersoutput

解决方案


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

推荐阅读