SQL存储过程和数据集

时间:2009-11-12 20:54:53

标签: sql dataadapter

我有一个sql存储过程在SSMS中正常工作。当我尝试通过代码执行并将返回分配给数据集时,我得到零行。我已经使用了即时窗口来确保我将正确的参数发送到存储过程,这一切都很好。

还有什么能让我获得分配给数据集的零行。这是我的代码。

谢谢, 麦克

编辑:我没有从SQL获得任何异常..

Public Function GetTransReporting(ByVal transNumber As Long, ByVal customerID As Long) As DataCommon.transReporting

Dim myTransReporting As New transReporting

    Dim da As SqlDataAdapter
    Dim prm1 As SqlParameter
    Dim prm2 As SqlParameter
    mcmd = New SqlCommand
    mcmd.CommandType = CommandType.StoredProcedure
    mcmd.Connection = mcn
    mcmd.CommandText = "GetTransReportingByCustomerID"

    prm1 = New SqlParameter("@transNumber", Data.SqlDbType.BigInt)
    prm1.Value = customerID
    mcmd.Parameters.Add(prm1)

    prm2 = New SqlParameter("@customerNumber", Data.SqlDbType.BigInt)
    prm2.Value = transNumber
    mcmd.Parameters.Add(prm2)

    da = New SqlDataAdapter(mcmd)
    da.Fill(myTransReporting)

Return myTransReporting

End Function

Dim myTransReporting As New transReporting Dim da As SqlDataAdapter Dim prm1 As SqlParameter Dim prm2 As SqlParameter mcmd = New SqlCommand mcmd.CommandType = CommandType.StoredProcedure mcmd.Connection = mcn mcmd.CommandText = "GetTransReportingByCustomerID" prm1 = New SqlParameter("@transNumber", Data.SqlDbType.BigInt) prm1.Value = customerID mcmd.Parameters.Add(prm1) prm2 = New SqlParameter("@customerNumber", Data.SqlDbType.BigInt) prm2.Value = transNumber mcmd.Parameters.Add(prm2) da = New SqlDataAdapter(mcmd) da.Fill(myTransReporting) Return myTransReporting

2 个答案:

答案 0 :(得分:1)

知道了..如果你看看我的参数,我不小心将交易分配给客户和客户进行交易。 DOH!

谢谢, 麦克

答案 1 :(得分:0)

您的存储过程是否以SET NOCOUNT ON开头?如果存储过程在最终SELECT之前处理多个查询,则缺少这种情况有时会导致问题。