我有一个通过Odbc连接到数据库的方法。我的存储过程
调用具有一个返回值,该返回值从数据库侧为“Char”。现在我正在抓
以字符串形式返回值,并在简单的if语句中使用它。我真的不喜欢这个主意
当只能从数据库返回两个值(0和1)时比较这样的字符串的过程

OdbcCommand fetchCommand = new OdbcCommand(storedProc, conn);

fetchCommand.CommandType = CommandType.StoredProcedure;
fetchCommand.Parameters.AddWithValue("@column ", myCustomParameter);
fetchCommand.Parameters.Add("@myReturnValue", OdbcType.Char, 1)
            .Direction = ParameterDirection.Output;
fetchCommand.ExecuteNonQuery();

string returnValue = fetchCommand.Parameters["@myReturnValue"].Value.ToString();
if (returnValue == "1")
{
    return true;
}

处理这种情况的正确方法是什么?我尝试了'Convert.ToBoolean()'
就像显而易见的答案一样,但是我遇到了'字符串未被识别为有效 bool 值的情况。 '抛出异常。我错过了什么吗
在这里,还是有另一种方式使“1”和“0”像真假一样起作用?

谢谢!

最佳答案

怎么样:

return (returnValue == "1");

或如下建议:
return (returnValue != "0");

正确的选择取决于成功的结果。

09-11 17:44