2013-02-05 37 views
0

我使用數據庫中的值填充dvgPeople。插入/更新/刪除/選擇命令工作正常。我想要做的是用選定行的值填充窗體上的一些組件。我可以填寫文本框,但我無法處理複選框。這裏是代碼。比較DataGridView的單元格值與字符串

if (dgvPeople.CurrentRow.Cells[6].Value == "1") 
{ 
    chkGerman.Checked = true; 
} 
else 
{ 
    chkGerman.Checked = false; 
} 

當我調試發生此情況下奇怪:

enter image description here

即使dgvPeople.CurrentRow.Cells [6]。價值= 1時,它仍然是錯誤的。

+0

什麼ReSharper的嘗試告訴你嗎? – GolfWolf

+0

它說:「可能意外的參考比較;爲了得到一個值的比較,把左邊的字符串輸入'string'」 – noDispName

+0

沒錯;請參閱下面的解決方案的x4rf41的答案。 – GolfWolf

回答

0

你去核對一個String對象的布爾值。

這將工作:

if (dgvPeople.CurrentRow.Cells[6].Value.ToString() == "1") 
{ 
    chkGerman.Checked = true; 
} 
else 
{ 
    chkGerman.Checked = false; 
} 
+0

它不是布爾值;它是'物體'。 – GolfWolf

+0

謝謝,它工作得很好。 – noDispName

1

值類型對象

Value.ToString().Equals("1") 

比較它作爲一個字符串

+0

謝謝,它工作。 – noDispName

+0

檢查答案按鈕是否正確,ty <3 – x4rf41

0

你嘗試:

if (dgvPeople.CurrentRow.Cells[6].Value.ToString() == "1") 
+1

已發佈本答覆 – Derek

+0

對不起,您的答案稍有不妥,總是使用String類型的.Equals()函數進行比較 – x4rf41