我在select查詢中使用case語句有點像這樣。sql查詢中的case語句中的布爾值
Select col1, col2, isActive = case when col3 = 'abc' then 1 else 0 end, col4
from <tablename> where <some condition>.
當我看到在ado.net的 'isActive' 列的值 -
bool isActiveFlag = (bool)datareader["isActive"];
我得到類型轉換錯誤。因爲它以int的形式返回值。
如果我更改查詢
Select col1, col2, isActive = case when col3 = 'abc' then 'true' else 'false' end, col4
from <tablename> where <some condition>.
我得到同樣的類型轉換錯誤,因爲這時候返回的值是字符串。基本上我想要查詢分配布爾值到'isActive'在查詢中,以便我可以讀取它作爲布爾值。
bool isActiveFlag = (bool)datareader["isActive"];
任何想法如何處理這個?
我不想讀取作爲int或字符串的值,然後將值轉換爲布爾值。
你嘗試使用,而不是明確的鑄造Convert.ToBoolean? – Waqas
@Waqas是的,我可以讀取值作爲字符串,並做Convert.ToBooleam。它爲我工作。但我想讀取值作爲布爾值而不是做布爾轉換。 – user936405