[英]How do you pass an output parameter from vb.net to a mysql stored procedure?
I am using the .net connector with mysql 5.5. 我正在使用带有mysql 5.5的.net连接器。 When I try to call a stored procedure with an "out" parameter, I get the message OUT or INOUT argument 2 for routine
name is not a variable or NEW pseudo-variable in BEFORE trigger
at cmd.ExecuteNonQuery()
. 当我尝试使用“out”参数调用存储过程时,我得到消息OUT or INOUT argument 2 for routine
名称 is not a variable or NEW pseudo-variable in BEFORE trigger
在cmd.ExecuteNonQuery()
is not a variable or NEW pseudo-variable in BEFORE trigger
中的is not a variable or NEW pseudo-variable in BEFORE trigger
。
What is wrong? 怎么了?
vb code: vb代码:
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 stored procedure: mysql存储过程:
CREATE PROCEDURE testme(in taxid integer, out imageDescCount integer)
BEGIN
set imageDescCount = 23;
End
Please try this 请试试这个
Create Stored Procedure in MySQl like 在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 ;
And Your vb.net code like 和你的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
Let me know if you have any problem... 如果您有任何问题,请告诉我......
Thanks 谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.