我有一種方法是通過Odbc連接到數據庫。我調用 的存儲過程有一個從數據庫端返回的值是'Char'。現在我抓取 ,它以字符串形式返回值,並在簡單的if語句中使用它。我真的不喜歡比較像這樣的字符串的想法 當只有兩個值可以來自數據庫返回0和1如何將「0」和「1」轉換爲false和true
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()',它似乎是 就像明顯的答案,但我碰到'字符串未被識別爲有效的布爾值。被拋出的異常。我在這裏錯過了什麼 ,或者有另外一種方法讓'1'和'0'的行爲如真假一樣嗎?
謝謝!
正確嗎?檢查;簡潔?檢查;優雅?檢查。 +1。 – Earlz 2010-04-15 18:52:41
我會推薦使用'return(returnValue!=「0」)'。更自然的是,'0'是'false',並且每個不爲零的數字都是'true'。當然這裏我們有Chris用字符串代替數字的情況,所以這個評論只是部分有效;) – Gacek 2010-04-15 18:54:12
這總是一場辯論。 0也意味着ERROR_SUCCESS,這意味着一切進展順利。但我同意Gacek認爲這更自然。 – 2010-04-15 19:15:52