【问题标题】:Pass and receive an output parameter from VB.NET to a MySQL从 VB.NET 向 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?

标签: mysql sql-server vb.net parameters


【解决方案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 次查询并得到相同的结果

【讨论】:

    猜你喜欢
    • 2020-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 2015-08-10
    • 1970-01-01
    • 2015-12-09
    • 2019-12-24
    相关资源
    最近更新 更多