MySQL/ c#存储过程没有返回值
本文关键字:返回值 存储过程 MySQL | 更新日期: 2023-09-27 18:06:17
我一直很难从存储过程返回值给c#应用程序。这个过程在MySql工作台中返回一个值,而不是c#。在c#输出中没有显示任何值。下面包括我调用的过程和方法:
/*
CREATE PROCEDURE `proc_FindChildID` (OUT CID VARCHAR(6))
BEGIN
SELECT MAX(ChildID) INTO @CID FROM Child;
SET @CID = SUBSTRING(@CID FROM 1);
SELECT @CID;
END //
*/
public bool callProcedure()
{
if (this.OpenConnection() == true)
{
MySqlCommand command = connection.CreateCommand();
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "proc_FindChildID";
command.Parameters.Add(new MySqlParameter("@CID", MySqlDbType.VarChar, 6));
command.Parameters["@CID"].Direction = ParameterDirection.Output;
command.ExecuteNonQuery();
string t_return = command.Parameters["@CID"].Value.ToString();
Console.WriteLine("ID:" + t_return);
this.CloseConnection();
return true;
}
else
{
return false;
}
}
我不知道MySqlCommand,但通常如果是MSSQL,我会调用object o = command.ExecuteScalar();
而不是command.ExecuteNonQuery();
来获取值