Сохраненная процедура, возвращающая ложь в vb.net

У меня проблема с моей программой vb.net. Проблема исходит из моих классов хранимых процедур. Я протестировал хранимые процедуры в базе данных SQL, с которой работаю, и все они работают.

Я также хочу отметить, что я скопировал и вставил имя 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

Следующая ошибка появляется для тех, кто хочет знать точную формулировку: Снимок экрана сообщения об ошибке . Приветствуется любая помощь.


person Gnathan    schedule 16.01.2014    source источник
comment
Вы уверены, что эти два процесса находятся в одной базе данных. Проверьте это.   -  person user2989408    schedule 17.01.2014
comment
да. Оба SP используют один и тот же класс подключения к данным. Оба они работают в SQL-сервере, но только один из них работает в коде. Я понятия не имею, почему он продолжает возвращать второй SP как ложный. В нем есть строки с результатами.   -  person Gnathan    schedule 17.01.2014


Ответы (2)


у тебя есть

set nocount on

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

person PrfctByDsgn    schedule 17.01.2014
comment
Босс просмотрел мой код. Обнаружено, что он должен был читать ExecuteReader вместо ExecuteNonQuery. Спасибо за помощь! - person Gnathan; 21.01.2014

Супервайзер просмотрел мой код, чтобы помочь. Понятно, что это должен быть Excute Reader, а не ExecuteNonQuery. Ищу информацию, а не вставляя новые источники.

Спасибо за помощь!

person Gnathan    schedule 21.01.2014