从 VB.NET 向 MySQL 传递和接收输出参数

Posted

技术标签:

【中文标题】从 VB.NET 向 MySQL 传递和接收输出参数【英文标题】:Pass and receive an output parameter from VB.NET to a MySQL 【发布时间】:2020-07-16 01:57:18 【问题描述】:

此代码在 SQL Server 上可以正常运行。

请将此代码转换为 mysql

在 MySQL 上运行会出现以下错误。

错误 = 您的 SQL 语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,了解在第 1 行的 '1=IdMax + 1 where TypeID>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   

【问题讨论】:

你试过了吗?官方文档应该是您的第一站,因为所有官方文档都非常出色。 嗯,是MySql还是Sql Server? 【参考方案1】:

所以你可以在 mysql 中得到你想要的东西。

你的 sql server 查询实际上是用数字 1 增加 IdMax,然后将增加的数字传输回 vb net。

这在 mysql 中不起作用。

当你看到更新 IdMax 时,我真的不明白你得到了什么。

为此,我必须查看表格,以充分了解正在尝试做的事情..

你能做的是

第一

SELECT MAX(IdMax) + 1 FROM ID_Max1 WHERE TypeID>1;

获取最大的数字,将其增加,然后存储在 IDMax_Update 中

这里解释how you store a result in a variavbkle

然后用

更新一行或多行

UPDATE ID_Max1 SET IdMax = IdMax WHERE TypeID>1;

你做了 2 次查询并得到相同的结果

【讨论】:

以上是关于从 VB.NET 向 MySQL 传递和接收输出参数的主要内容,如果未能解决你的问题,请参考以下文章

将数组从 VBA 传递到 VB.NET

从 .NET 向 Access (Jet) 表添加列

将变量从 JS 传递到 VB.net

如何将数组变量从 VBA 传递到 vb.net 函数

如何将 unsigned short* 从 Visual-C++ DLL 传递到 VB.NET

将字符串从 vb.net 传递到 cmd