2016-05-13 40 views
2

現在我想如果dt.rows(i).item(0)爲空,那麼一些代碼..如何,如果數據表產品在VB空創造條件,以檢查

這是我的代碼:

If dtpay.Rows(i).Item(23).ToString Is Nothing Then 
    GoTo finalline 
End If 

,但似乎像代碼不工作.. 非常感謝你的關心:d

+0

@JaydipJ在VB.Net中沒問題。你可能會想到C# – Ian

+0

@lan是的我認爲C#和VB使用的庫函數是相同的。感謝信息 –

+0

注意:你的代碼中有一些'vb6',特別是'goto'。此外'dtpay.Rows(i).Item(23)是DBNull.Value'將工作,以查看它是否爲空... – Codexer

回答

1

您可以使用GetType()檢查對象爲DBNullVB.Net

If dtpay.Rows(i).Item(23).GetType() Is GetType(DBNull) Then 
    'Do something 
End If 

也就是說,上面代碼中的DBNull也可能發生在dtpay.Rows(i)。因此,請檢查DBNull發生的位置。

+0

此代碼仍然無法正常工作...其實我想當項目(23)爲空時,跳過下面的所有代碼。除了此解決方案之外,您還有其他方法嗎?我很抱歉,謝謝你的幫助 –

+0

它在什麼意義上不起作用?它是否去了'If'塊? – Ian

+0

我在try塊上運行它..無論如何,我不設置GoTo到try塊以外 –

0

沒有什麼不同於空。 沒有返回的默認值的字段的類型(0號「」文本,...)

If IsDBNull(dtpay.Rows(i).Item(23)) Then 
     GoTo finalline 
    End If 
+0

很抱歉,但這段代碼似乎也不能正常工作..你有其他解決方案嗎?非常感謝幫助:D –

0

您應該使用DataRow.IsNull

If dtpay.Rows(i).IsNull(23) Then 
    ' ..... ' 
End If 

如果它是一個值類型(像Integer),您可以使用DataRow -extension方法Field

Dim myNullableField As Int32? = dtpay.Rows(i).Field(Of Int32?) 
If Not myNullableField.HasValue Then 
    ' you get it's value via myNullableField.Value ' 
End If 
+0

此代碼仍然不工作...其實我想跳過下面的所有代碼,當項目(23)爲空..除了此解決方案之外,您還有其他方法嗎?在此先感謝 –

+0

@JohnsYong:您的代碼會做相反的事情,如果是'DnBull',您將輸入代碼。如果你不想這樣:'如果不是dtpay.Rows(i).IsNull(23)然後' –

+0

我剛剛得到解決方案。感謝您的幫助..我不知道爲什麼,但此代碼正在工作。無論如何,非常感謝您的幫助!我使用這種類型的代碼: 如果dt.Rows(i).Item(23)是Nothing OrElse dt.Rows(i).Item(23).ToString =「」OrElse dt.Rows(i).Item 23)= vbNull然後 轉到finalline 結束如果 –

0

儘量只:

If dtpay.Rows(i).Item(23) Is Nothing Then 
    GoTo finalline 
End If 
+0

呵呵..它真的不工作,即使我再試一次 –

+0

如果你想跳過下面的所有代碼時,項目(23)爲空:嘗試這一行如果dtpay.Rows i).Item(23)是沒有然​​後退出子或如果IsDBNull((dtpay.Rows(i).Item(23))然後退出子 –

0

如果dt.Rows(ⅰ).Item(23)是Nothing OrElse運算dt.Rows(ⅰ).Item(23)的ToString = 「」 OrElse運算dt.Rows(ⅰ).Item(23) = vbNull Then GoTo finalline End If