Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Davis

Parâmetro @RETURN_VALUE não retorna nada...

Recommended Posts

Estou fazendo uma pesquisa no BD e ela deveria retornar os campos (naturalmente http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif ) e um valor de retorno.

 

O campo direct_debit, dentro da tbCustomers, é um campo booleano. Eu preciso verificá-lo para ver se eu preciso fazer um INNER JOIN na em tbDDebit ou não.

 

Vejam:

ALTER PROCEDURE dbo.spSelectOneCustomer 	@id	intAS	DECLARE @dd as bit	SET @dd = (SELECT direct_debit FROM tbCustomers WHERE id = @id AND del = '0')	if (@dd = '0')	begin		SELECT 			id, name_cust		FROM			tbCustomers		WHERE			id = @id AND del = '0'	end	if (@dd = '1')	begin		SELECT 			C.id, C.name_cust, DD.id as id_dd, DD.bank_acc_number		FROM			tbCustomers as C		INNER JOIN tbDDebit as DD on C.id = DD.id_cust		WHERE			C.id = @id AND C.del = '0'	end			RETURN @dd
Em seguida eu tenho o código que recebe os valores da Stored Procedure. Vou colocar só o mais importante pois é gigantesco http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif :

Dim myCommand As SqlCommand = New SqlCommand("spSelectOneCustomer", MyConn)			With myCommand				.CommandType = CommandType.StoredProcedure				.Parameters.Clear()				.Parameters.Add("@id", SqlDbType.Int).Value = Request.QueryString("id")				.Parameters.AddWithValue("@RETURN_VALUE", 0).Direction = ParameterDirection.ReturnValue			End With			Try				MyConn.Open()				Dim result As SqlDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection)				If result.Read Then					hfID.Value = result("id")					txtName.Text = result("name_cust")					If Convert.ToBoolean(myCommand.Parameters("@RETURN_VALUE").Value) Then						cbDirectDebit.Checked = result("direct_debit")						hfID_DD.Value = result("id_dd")						txtBankAccNumber.Text = result("bank_acc_number")						txtBankAccNumber.Enabled = True					End If					result.Close()			Catch ex as Exception				Response.Write(ex.Message)				Exit Sub			Finally				MyConn.Close()				btnCancel.Visible = True				btnSave.Text = "Save"			End Try
O problema todo é que o @RETURN_VALUE está retornando o valor passado pelo código e não pela Stored Procedure. Fiz o teste: se eu colocar .AddWithValue("@RETURN_VALUE", vbNull) na passagem de parâmetros ele vai me retornar um valor nulo.

 

Alguma sugestão?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, como ninguém respondeu eu vou mostrar a gambiarra que eu fiz http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

 

Usei um bloco try:

 

Try 'using try because i have no idea why it doesnt return any value						'If CType(myCommand.Parameters("@RETURN_VALUE").Value, Boolean) Then						cbDirectDebit.Checked = result("direct_debit")						hfID_DD.Value = result("id_dd")						txtBankAccNumber.Text = result("bank_acc_number")						txtBankAccNumber.Enabled = True						'End If					Catch					End Try

Bem, tá funcionando... hehehe..

 

Valeu... http://forum.imasters.com.br/public/style_emoticons/default/natal_smile.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.