2014-01-16 2 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

Вы уверены, что два procs находятся в одной базе данных. Проверьте [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 

в вашем sproc? Я думаю, ExecuteNonQuery не может вернуть количество затронутых строк, затем ...

+0

Босс просмотрел мой код. Было установлено, что он должен был читать ExecuteReader вместо ExecuteNonQuery. Благодарим вас за помощь! – Gnathan

Смежные вопросы