2014-09-26 155 views
1

我打算在出勤時選中已選中但未選中的複選框,但出現在我的代碼中。 ''沒有爲類型'DBNull'定義,而是輸入'Boolean'。「...請幫助...您的幫助非常感謝。感謝運算符'='沒有爲類型'DBNull'定義,而是類型'布爾'。?/

我的代碼:

下一頁

Dim Present As Integer = 0 
    Dim Absent As Integer = 0 
    For a = 0 To Table2___lieDataGridView.RowCount - 1 
     For b = 0 To Table2___lieDataGridView.ColumnCount - 8 
      If Table2___lieDataGridView.Rows(a).Cells(b + 5).Value = True Then 

       Present += 1 
      Else 
       Absent += 1 
      End If 
     Next 
     Table2___lieDataGridView.Rows(a).Cells(10).Value = Present 
     Table2___lieDataGridView.Rows(a).Cells(11).Value = Absent 
     Present = 0 
     Absent = 0 


    Next 
+0

您需要檢查值是'Nothing'還是'DBNull',如果不是,那麼您可以安全地將它轉換爲'Boolean'並進行比較。 – 2014-09-26 04:01:47

+0

感謝您的評論..我在哪裏檢查它? – 2014-09-26 04:04:55

+0

請參閱下面的答案。您可以使用內置的[IsDBNull](http://msdn.microsoft.com/zh-cn/library/tckcces5(v = vs.90).aspx)函數 – 2014-09-26 04:07:27

回答

0

之前比較值爲true,你應該檢查值並非實際的DBNull類型。 這是因爲你碰巧在你的數據庫中有空值,並且在那種情況下,沒有針對布爾值的比較運算符。

例如,看一下這個問題:Handling DBNull data in VB.Net

+0

非常感謝您。我知道了...... gracias – 2014-09-26 05:19:39

+0

非常感謝你@alexw ..........它可以幫到很多 – 2014-09-27 16:33:05

+0

我想你們倆都是,但至少需要15聲望 – 2014-09-27 16:33:52

1

您需要使用IsDBNull功能在進行比較之前檢查空值。

If Not IsDBNull(Table2___lieDataGridView.Rows(a).Cells(b + 5).Value) AndAlso Table2___lieDataGridView.Rows(a).Cells(b + 5).Value Then 
End If 
相關問題