Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 返回数据表的函数_Vb.net - Fatal编程技术网

Vb.net 返回数据表的函数

Vb.net 返回数据表的函数,vb.net,Vb.net,我有一个返回datatable的函数 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

我有一个返回datatable的函数

  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 ?

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

If _Read Is nothing Then
...
End if
但是如果您真的想“在发生错误时获得控制”,那么您必须做的第一件事就是应用正确的错误处理。永远不要捕捉和忽略异常。 处理异常的一种方法是通过消息框通知用户,并记录它。另一种选择是在过程中不使用Catch,以便错误向上传播


此外,您可能希望有一个finally块来关闭和释放资源,或者使用using构造。请参见此处:

尝试下面的“读取方法”变体。此方法返回DataTable作为返回类型,返回错误消息作为输出参数。我希望这会有所帮助

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
在您的代码中调用此方法作为

    Dim myDataTable As Data.DataTable
    Dim myErrorMsg As String = ""

    myDataTable = _Read(myErrorMsg)

    If myErrorMsg <> "" Then
        MessageBox.Show(myErrorMsg)
    End If
将myDataTable设置为Data.DataTable
Dim myErrorMsg As String=“”
myDataTable=\u读取(myErrorMsg)
如果myErrorMsg“”则
MessageBox.Show(myErrorMsg)
如果结束

如果它不是零,我如何设置?如果_Read不是零,那么
returnedDT=\u Read()//如果returnedDT不是零,那么…