【发布时间】:2010-10-28 15:07:47
【问题描述】:
我正在尝试调试我的代码,其中涉及一个简单的 web 服务,它将参数传递给一个数据类,该类调用一个存储的过程,并返回一行记录。我没有收到任何错误消息,但我也没有收到任何记录。
我的网络服务代码是:
<WebMethod()> _
Public Function GetDataValues(ByVal AutoVIN As String, ByVal OrderID As String, ByVal StatusCode As String, ByVal DivisionID As String) As String
Dim oGetHeaderValue As New clsGetHeaderValue
Dim GetHeaderValues As String = ""
Dim strAutoVIN = Trim(AutoVIN)
Dim strOrderID = Trim(OrderID)
Dim strStatusCode = Trim(StatusCode)
Dim strDivisionID = Trim(DivisionID)
Try
'Validate user entries if they are the correct length;
If Not IsNumeric(strAutoVIN) Or Len(Trim(strAutoVIN)) <> 3 Then
Throw New SoapException("Invalid Auto VI Number", SoapException.ClientFaultCode)
End If
'OrderID could be 12 digits in length
If Not IsNumeric(strOrderID) Then
Throw New SoapException("Invalid Order ID", SoapException.ClientFaultCode)
End If
'************************Verify if the order exists "Order Number not in requested status" in table Auto.orderHeader
'************************Validate entries against db table;
'Call Stored Proc and pass parameters;
Dim retDataSet As Data.DataSet
retDataSet = oGetHeaderValue.GetHeaderValue(strAutoVIN, strOrderID, strStatusCode, strDivisionID)
GetHeaderValues = retDataSet.ToString()
Return GetHeaderValues
Catch ex As Exception
Return "<ERR>" & ex.Message.ToString & "</ERR>"
End Try
End Function
我的数据库类代码是:
Public Function GetGetHeaderValue(ByVal sAutoVIN As String, ByVal sOrderID As String, ByVal sStatusCode As String, ByVal sDivisionID As String) As DataSet
Dim sqlDA As New SqlDataAdapter
Dim ds As New DataSet
Dim sqlcmd As New SqlCommand
Dim conn As New SqlConnection(strCN_Auto)
sqlDA = New SqlDataAdapter("uspExportOrders", conn)
sqlDA.SelectCommand.CommandType = CommandType.StoredProcedure
sqlDA.SelectCommand.Parameters.Add(New SqlParameter("@AutoVIN", SqlDbType.VarChar, 3))
sqlDA.SelectCommand.Parameters("@AutoVIN").Value = sAutoVIN
sqlDA.SelectCommand.Parameters.Add(New SqlParameter("@OrderID", SqlDbType.VarChar, 12))
sqlDA.SelectCommand.Parameters("@OrderID").Value = sOrderID
sqlDA.SelectCommand.Parameters.Add(New SqlParameter("@StatusCode", SqlDbType.VarChar, 10))
sqlDA.SelectCommand.Parameters("@StatusCode").Value = sStatusCode
sqlDA.SelectCommand.Parameters.Add(New SqlParameter("@DivisionID", SqlDbType.VarChar, 3))
sqlDA.SelectCommand.Parameters("@DivisionID").Value = sDivisionID
sqlDA.Fill(ds) 'Fill the DataSet with the rows returned.
Return ds
sqlDA.Dispose()
conn.Close()
End Function
【问题讨论】:
-
不是一个答案,但你没有提到你返回一些东西,然后你想处理并关闭其他东西吗?!看看 using 关键字和 try/catch/finally。
-
如果你在 SSMS 中使用相同的输入执行存储过程,你会得到记录吗? (又名,您确定错误在您的代码中,而不是在您的存储过程中吗?)
-
是的,记录在SSMS中返回
标签: vb.net sql-server-2005 .net-2.0