2013-09-26 184 views
0

在Access數據庫中,我有一個名爲Display的列,其類型爲Yes/No。我正在讀取表格行並將其存儲在名爲editDrData[]的字符串數組中。現在,我想檢查它是真是假。我嘗試了以下,但它不起作用。什麼是正確的方式來做這個檢查?將字符串轉換爲布爾值並檢查布爾值

if (Convert.ToBoolean(editDrData[15]) == false) 
+0

什麼是數組中元素的實際strinf價值?它是真實的「是」和「否」? –

+0

雖然存儲我存儲布爾值真和假, – Durga

+0

如果他們是布爾值,爲什麼你把它們存儲在一個字符串數組? –

回答

0

如果根據你,數組實際持有布爾值,你不必做任何轉換。簡單

if (editDrData[15]) { 

} 

將做的伎倆。如果它確實是字符串,這應該工作;

if (editDrData[15] == "True") { 

} 
+0

但我怎麼做檢查值是真的還是假的? – Durga

+0

@ Yuriy Galanter它顯示我這個錯誤,當我嘗試它'錯誤操作符'=='不能應用於類型'字符串'和'bool''的操作數 – Durga

+0

這工作'if((editDrData [15] ==「True 「)請更新你的答案 – Durga

1

你需要做一個字符串比較

bool value = editDrData[15] == "Yes"; 
+0

存儲時,我存儲布爾值true和false,而不是字符串 – Durga

+0

@Durga在上面的答案中,'value'將是'true'或'false'。 – Khan

+0

editDrData [15]的字符串值是多少? 「真正」? 「是」? – MikeLim

0

它應該工作。我會說這是字符串或邏輯的格式錯誤。你需要插入一個斷點來檢查,但是如果它符合examples from microsoft,那麼字符串應該成功轉換...(如果你確實在斷點處放置了一個斷點並在運行時找到該值,那麼你將得到更好的答案)

所以,如果editDrData [15]看起來像「真」或「假」(案例無關緊要),那麼你上面的代碼將工作。

如果editDrData [15]中的字符串實際上是「Yes」或「No」,那麼您不能使用Convert.Boolean(string);你將不得不把自己的邏輯,像


if(editDrData[15] == "No") 
{ 
    //do stuff here 
} 
0
在.NET

,如果你想傳遞的字符串Convert.ToBoolean(),它只能是「真」或「假」

或者我認爲它會拋出異常。

你是否檢查這是作爲字符串存儲在數據庫中的實際值?如果它不是真和假,你不能這樣做。

你可以在這種情況下比較字符串

例如,

如果(string.Equals(editDrData [15], 「YES ???」,StringComparison.CurrentCultureIgnoreCase)){}

字符串。

順便說一句:當導入到系統中時,將它作爲布爾值存儲會更好嗎?

1

您的表格行存儲的字符串比較是/否。

bool value; 
if (editDrData[15] == "Yes") 
{ 
    value = true; 
} 
else 
{ 
    value = false; 
} 
0

字符串必須等於(System.Boolean.TrueString) 「TRUE」 或(System.Boolean.FalseString) 「FALSE」,使用Convert.ToBoolean(串) 如果你要使用這樣的功能所有以上項目可以覆蓋一些方法,使自己的轉換器

http://msdn.microsoft.com/en-us/library/ayybcxe5.aspx