2014-01-16 112 views
0

我有我的vb.net程序的問題。問題來自我的存儲過程類。我測試了我正在使用的SQL數據庫中的存儲過程,並且它們都在工作。存儲過程返回FALSE在vb.net

我也想指出,我沒有複製和粘貼SP的名字到SQL服務器並執行它,它完美地運行。

EXEC dbo.ksp_Get_Available_Statuses 

在程序本身中,只有一個SP類正在工作。以下是代碼:

Imports System.Data.SqlClient 

Public Class Add_Term 
    Public Function addTerm(ByVal term As String, ByVal definitionSource As Integer, ByVal formatNote As String, ByVal definition As String, ByVal authorization As String, ByVal addReason As String) 
     Dim connection As SqlConnection = DataConnection.getProperityDBConnection 

     Dim insertCommand As New SqlCommand("dbo.ksp_Add_Term", connection) 
     insertCommand.CommandType = CommandType.StoredProcedure 
     insertCommand.Parameters.AddWithValue("@term", term) 
     insertCommand.Parameters.AddWithValue("@definitionSource", definitionSource) 
     insertCommand.Parameters.AddWithValue("@formatNote", formatNote) 
     insertCommand.Parameters.AddWithValue("@definition", definition) 
     insertCommand.Parameters.AddWithValue("@authorization", authorization) 
     insertCommand.Parameters.AddWithValue("@addReason", addReason) 

    Try 
     connection.Open() 
     Dim count As Integer = insertCommand.ExecuteNonQuery() 
     If count > 0 Then 
      Return True 
     Else 
      Return False 
     End If 
    Catch ex As Exception 
     Throw ex 
    Finally 
     connection.Close() 
    End Try 
End Function 
End Class 

這裏是我工作的固定代碼,但它不工作。我沒有看到我做錯了什麼,這讓我很瘋狂。我需要第二對(如果不是更多)的眼睛。 進口System.Data.SqlClient的

Public Class Get_Avaliable_Statuses 
    Public Function getAvailableStatuses() 
     Dim connection As SqlConnection = DataConnection.getProperityDBConnection 

     Dim insertCommand As New SqlCommand("dbo.ksp_Get_Available_Statuses", connection) 
     insertCommand.CommandType = CommandType.StoredProcedure 

     Try 
      connection.Open() 
      Dim count As Integer = insertCommand.ExecuteNonQuery() 
      If count > 0 Then 
       Return True 
      Else 
       Return False 
      End If 
     Catch e As Exception 
      Throw e 
     Finally 
      connection.Close() 
     End Try 
    End Function 
End Class 

以下是雨後春筍般冒出來爲那些想知道確切的寫法錯誤: Error Message Screen Shot. 作爲允許,任何幫助表示讚賞。

+0

你確定這兩個特效都是在同一個數據庫。檢查[this](http://stackoverflow.com/questions/847879/could-not-find-stored-procedure)。 – user2989408

+0

是的。兩個SP都使用相同的數據連接類。他們都在SQL服務器上工作,但只有其中一個在代碼中工作。我不知道爲什麼它不斷返回第二個SP爲假。它有結果的行。 – Gnathan

回答

0

主管看了看我的代碼,以幫助。意識到它應該是Excute Reader而不是ExecuteNonQuery。我正在尋找信息,而不是插入新的來源。

感謝您的幫助!

0

你有一個

set nocount on 
在你的存儲過程

?我猜的ExecuteNonQuery不能返回受影響的行數,然後......

+0

老闆看了我的代碼。發現它應該閱讀 的ExecuteReader的 代替 的ExecuteNonQuery。 儘管謝謝你的幫助! – Gnathan