gpt4 book ai didi

.net - 如何将输出参数从 vb.net 传递到 mysql 存储过程?

转载 作者:行者123 更新时间:2023-11-29 05:33:07 24 4
gpt4 key购买 nike

我正在使用 .net 连接器和 mysql 5.5。当我尝试使用“out”参数调用存储过程时,我收到消息 OUT or INOUT argument 2 for routine name is not a variable or NEW cmd.ExecuteNonQuery() 中的 BEFORE 触发器 中的伪变量。

怎么了?

代码:

cmd = New MySqlCommand("call testme(@id, @count)", conn)
cmd.Parameters.AddWithValue("@id", id) ' "id" and "count" are integer variables
cmd.Parameters.AddWithValue("@count", count)
cmd.Parameters("@count").Direction = ParameterDirection.Output
cmd.ExecuteNonQuery()

mysql存储过程:

CREATE PROCEDURE testme(in taxid integer, out imageDescCount integer)
BEGIN
set imageDescCount = 23;
End

最佳答案

请试试这个

像MySQl一样创建存储过程

DELIMITER $$
DROP PROCEDURE IF EXISTS `tempdb`.`GetCity` $$
CREATE PROCEDURE `tempdb`.`GetCity`
(IN cid INT,
OUT cname VarChar(50)
)

BEGIN

SET cname = (SELECT CityName FROM `City` WHERE CID = cid);

END $$

DELIMITER ;

和你的 vb.net 代码一样

Dim conn As  New MySqlConnection()
conn.ConnectionString = "server=localhost;user=root;database=tempdb;port=3306;password=******;"
Dim cmd As New MySqlCommand()

conn.Open()
cmd.Connection = conn
cmd.CommandText = "GetCity"
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@cid", "1")
cmd.Parameters("@cid").Direction = ParameterDirection.Input

cmd.Parameters.AddWithValue("@cname", MySqlDbType.String)
cmd.Parameters("@cname").Direction = ParameterDirection.Output
cmd.ExecuteNonQuery()

Console.WriteLine("City Name: " & cmd.Parameters("@cname").Value) //Access Your Output Value

如果您有任何问题,请告诉我...

谢谢

关于.net - 如何将输出参数从 vb.net 传递到 mysql 存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13023330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com