none
Execute Scalar retorna null RRS feed

  • Pergunta

  • Porque o execute scalar retorna null?

    Eu tentei já usar @@identity , scope_identity e mesmo assim retorna null.

    Existe uma solução ? obrigado

    Segue código:

    Dim command As New SqlCommand()
                command.Connection = connection
                command.Connection.Open()

                Dim sbInsert As New StringBuilder()

                Try
                    Dim sequence As Integer = 0
                    For Each SelectedPayment As SelectedPayment In selectedPayments
                        sequence += 1

                        command = New SqlCommand("spInsertSelectedPayment", connection)
                        command.CommandType = CommandType.StoredProcedure

                        If SelectedPayment.IdReceipt <= 0 Then
                            command.Parameters.AddWithValue("@IdReceipt", SelectedPayment.IdReceipt)
                        Else
                            command.Parameters.AddWithValue("@IdReceipt", -1)
                        End If
                        command.Parameters.AddWithValue("@IdPaymentMethod", SelectedPayment.IdPaymentMethod)
                        command.Parameters.AddWithValue("@virtualPartnerIdReceipt", SelectedPayment.VirtualPartnerIdReceipt)
                        command.Parameters.AddWithValue("@Parcels", SelectedPayment.Parcels)
                        command.Parameters.AddWithValue("@Value", SelectedPayment.Value)

                        If (SelectedPayment.BilletDate = Date.MinValue) Then
                            command.Parameters.AddWithValue("@billetDate", DBNull.Value)
                        Else
                            command.Parameters.AddWithValue("@billetDate", SelectedPayment.BilletDate)
                        End If

                        ' Verifica qual o meio de pagamento selecionado para que o Status inicial apropriado seja atribuído.
                        Select Case SelectedPayment.IdPaymentMethod
                            Case 5109
                                SelectedPayment.Status = 501
                                command.Parameters.AddWithValue("@Status", SelectedPayment.Status)

                            Case 5010
                                SelectedPayment.Status = 109
                                command.Parameters.AddWithValue("@Status", SelectedPayment.Status)

                            Case 5007
                                SelectedPayment.Status = 103
                                command.Parameters.AddWithValue("@Status", SelectedPayment.Status)
                        End Select
                        SelectedPayment.Sequence = sequence
                        command.Parameters.AddWithValue("@Sequence", SelectedPayment.Sequence)

                        command.Parameters.AddWithValue("@IdSelectedPayment", idSelectedPayment)

                        idSelectedPayment = command.ExecuteScalar()

    ---> idSelectedPayment = nothing...

    Proc:

    ALTER PROCEDURE [dbo].[spInsertSelectedPayment]          
    (          
        @IdReceipt INT ,          
        @IdPaymentMethod VARCHAR(50),          
        @virtualPartnerIdReceipt VARCHAR(10),          
        @Parcels INT,          
        @Value INT,
        @billetDate DATETIME =NULL,          
        @Status INT,          
        @Sequence INTEGER,    
        @IdSelectedPayment INT output        
    )          
    AS          
    SET QUOTED_IDENTIFIER OFF          
    BEGIN          
    DECLARE @ErrorValue INT          
    SET @ErrorValue = 1          
              
              
    -----------------------------------------------------------------          
        INSERT INTO tbReceiptSelectedPayments (IdReceipt,IdPaymentMethod,Sequence,Parcels,Value,Status,VirtualPartnerIdReceipt,BilletDate)
        VALUES(@IdReceipt,@IdPaymentMethod,@Sequence,@Parcels,@Value,@Status,@virtualPartnerIdReceipt,@billetDate)          
        SELECT @IdSelectedPayment = SCOPE_IDENTITY()          
        RETURN @ErrorValue          
              
        IF @@ERROR != 0 GOTO ERROS          
    -----------------------------------------------------------------          
    --COMMIT TRANSACTION          
    --RETURN          
    ERROS:          
    --ROLLBACK TRANSACTION           
    --RETURN          
              
              
    END          
                       
              
    set ANSI_NULLS ON          
    set QUOTED_IDENTIFIER ON 

    segunda-feira, 25 de agosto de 2014 11:20