Sql VB.net通过存储过程将参数传递给函数
我试图调用一个填充datatable的函数,但它不起作用,我迷路了。我得到一个函数错误。函数不会在所有代码路径上返回值。这是我的代码,请帮忙,谢谢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
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作为新数据表移动到上方。