MySQL/C#存储过程不返回值
我一直很难从存储过程向C#应用程序返回值。该过程在MySql workbench中返回一个值,但在C#中不返回。在C#输出中没有显示任何值。以下是我调用的过程和方法:MySQL/C#存储过程不返回值,c#,mysql,stored-procedures,C#,Mysql,Stored Procedures,我一直很难从存储过程向C#应用程序返回值。该过程在MySql workbench中返回一个值,但在C#中不返回。在C#输出中没有显示任何值。以下是我调用的过程和方法: /* CREATE PROCEDURE `proc_FindChildID` (OUT CID VARCHAR(6)) BEGIN SELECT MAX(ChildID) INTO @CID FROM Child;
/*
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.ExecuteOnQuery()
获取值。我不知道MySqlCommand,但通常如果是MSSQL,我会调用object o=command.ExecuteScalar()代码>而不是command.ExecuteOnQuery()代码>获取值。先生,您是个天才!这解决了我的问题。非常感谢你!先生,你真是个天才!这解决了我的问题。非常感谢你!