返回数据表

时间:2015-12-01 07:53:36

标签: vb.net

我有一个返回数据表的函数

  Private Function _Read() As DataTable
    Dim _cmd As New SqlCommand
    Dim _da As New SqlDataAdapter(_cmd)
    Dim _dt As New DataTable
    With _cmd
        .Connection = dbRoot
        .CommandTimeout = 0
        .CommandText = "SELECT * FROM Table "
    End With

    Try
        _da.Fill(_dt)
        Return _dt
    Catch ex As Exception
        Return Nothing
    End Try

End Function

现在我想控制错误,所以我把代码放在Try Catch块中。

如何检查我的程序是否发生异常?

我可以像这样设置

IF _Read = nothing ?

2 个答案:

答案 0 :(得分:1)

首先,要检查_Read是否返回任何内容,您必须在vb.net中使用Is关键字:

If _Read Is nothing Then
...
End if

但是如果你真的想要"控制是否发生错误"那么你要做的第一件事是应用适当的错误处理。永远不要抓住并忽略异常。 处理异常的一种方法是通过消息框通知用户,记录它。另一个选择是不要在过程中使用Catch,以便将错误传播到堆栈中。

此外,您可能希望使用finally块来关闭和释放资源,或使用using构造。见这里:SqlCommand (Using Statement / Disposing issue)

答案 1 :(得分:0)

尝试以下_Read方法的变体。此方法返回DataTable作为返回类型,并将错误消息作为输出参数返回。我希望这会有所帮助。

ungetch

在代码中将此方法称为

Private Function _Read(ByRef errorMsg As String) As DataTable

    Try
        'Get data from datrabase

        'return datatable
        _Read = New Data.DataTable

        'return empty if no error occured
        errorMsg = ""

    Catch ex As Exception

        'return null data table
        _Read = Nothing

        'return error code
        errorMsg = ex.Message

    End Try

End Function