Sql VB.net通过存储过程将参数传递给函数

Sql VB.net通过存储过程将参数传递给函数,sql,vb.net,function,Sql,Vb.net,Function,我试图调用一个填充datatable的函数,但它不起作用,我迷路了。我得到一个函数错误。函数不会在所有代码路径上返回值。这是我的代码,请帮忙,谢谢 Protected Sub Search_Click(sender As Object, e As EventArgs) Handles Search.Click strPartNumber = txtPartNumber.Text Dim CT As DataTable = Me.GetCompanyInf

我试图调用一个填充datatable的函数,但它不起作用,我迷路了。我得到一个函数错误。函数不会在所有代码路径上返回值。这是我的代码,请帮忙,谢谢

Protected Sub Search_Click(sender As Object, e As EventArgs) Handles Search.Click
        strPartNumber = txtPartNumber.Text

            Dim CT As DataTable = Me.GetCompanyInfo(strPartNumber, "None")
            dvCommon.DataSource = CT
            dvCommon.DataBind()
    End Sub

Private Function GetCompanyInfo(ByRef PartNumber As String, ByRef Version As String) As DataTable
        Dim constr As String = ConfigurationManager.ConnectionStrings("DefaultConnection").ConnectionString
        Using con As New SqlConnection(constr)
            Using cmd As New SqlCommand("spCommonInfo")
                cmd.Connection = con
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.AddWithValue("@PartNumber", PartNumber)
                cmd.Parameters.AddWithValue("@Version", Version)
                Using sda As New SqlDataAdapter(cmd)
                    Dim CT As New DataTable()
                    sda.Fill(CT)
                End Using
            End Using
        End Using
    End Function

据我所知,您的方法
GetCompanyInfo
将数据表返回为
As datatable
,但在代码中不返回数据表

您应该返回已填充的数据表

Return CT
您的函数代码应该是

Private Function GetCompanyInfo(ByRef PartNumber As String, ByRef Version As String) As DataTable
        Dim constr As String = ConfigurationManager.ConnectionStrings("DefaultConnection").ConnectionString
        Using con As New SqlConnection(constr)
        Dim CT As New DataTable()
            Using cmd As New SqlCommand("spCommonInfo")
                cmd.Connection = con
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.AddWithValue("@PartNumber", PartNumber)
                cmd.Parameters.AddWithValue("@Version", Version)
                Using sda As New SqlDataAdapter(cmd)                    
                    sda.Fill(CT)
                End Using
            End Using
        End Using
     Return CT
    End Function

我收到一个函数错误。
你要对这个错误保密吗?你的CT不会被退回。它刚被填满,然后就死了。@LarsTech请告诉我如何返回它。您需要在函数的底部
return CT
。使用con…行将
尺寸CT作为新数据表移动到
上方。