SOCORRO COM PARAMETROS PARA STORED PROCEDURE

JAVVOLIVEIRA 17/01/2011 12:13:50
#362483
Srs do forum, bom dia,

Venho pedir a ajuda de voces para um problema que esta me atormentando e nao consigo resolver, talvez pq ainda nao saiba procurar direito aqui no forum, tal por pura incompetencia minha, mas é o seguinte :

Estou migrando aos poucos para .NET e me deparei com um problema que nao estou conseguindo resolver que é o seguinte :

Estou tentando passar um parametro para uma stored procedure cujo valor é R$ 1500,15 porem nao estou sabendo como declarar este parametro, segue abaixo meu codigo e o codigo da SP.

STORED PROCEDURE :

CREATE PROCEDURE dbo.IncluiCheques
-- Add the parameters for the stored procedure here
@CliId int,
@ChequeBruto decimal(18,2),
@ChequeObs nvarchar(50),
@ChequeProc nvarchar(1)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

insert into tCheques (CliId,Cheque) values(@CliId,@ChequeBruto)

END
GO


MINHA PASSAGEM DE PARAMETRO PARA A STORED PROCEDURE

Dim con As New SqlConnection(Module1.strcon)
Dim comando As New SqlCommand([Ô]dbo.IncluiCheques[Ô], con)
comando.CommandType = CommandType.StoredProcedure

comando.Parameters.Add(New SqlParameter([Ô]@CliId[Ô], SqlDbType.Int))
comando.Parameters([Ô]@CliId[Ô]).Value = CliId


[txt-size=1][txt-color=#e80000]COMO PASSAR O PARAMETRO ABAIXO DE FORMA QUE FUNCIONE A INCLUSAO ?[/txt-color] [/txt-size]

comando.Parameters.Add(New SqlParameter([Ô]@ChequeBruto[Ô], SqlDbType.Decimal, (18, 2)))
comando.Parameters([Ô]@ChequeBruto[Ô]).Value = ChequeBruto



POR FAVOR ME AJUDEM NAO CONSIGO SAIR DAQUI.......
RODRIGOFERRO 17/01/2011 12:41:29
#362484
Resposta escolhida
Compare para ver, parece que esta passando paramentro errado ai !


Public Class Executa_sp
Inherits System.Windows.Forms.Form

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Try

Dim cmd As New SqlCommand([Ô]exemplo_de_stored_procedure[Ô], sqlcon)
da = New SqlDataAdapter(cmd)
ds = New DataSet

[ô]definindo o parâmetro : nome , tipo , valor
Dim input As New SqlParameter

With input
.ParameterName = [Ô]@CustomerID[Ô]
.SqlDbType = SqlDbType.NChar
.Value = TextBox1.Text
End With

[ô]definindo o comando : o tipo de parâmetro (entra/saida) e o tipo de comando.
With cmd
.Parameters.Add(input)
.CommandType = CommandType.StoredProcedure
End With

[ô]preenche o dataset com os dados da sp
da.Fill(ds, [Ô]exemplo_de_stored_procedure[Ô])

[ô]vincula a tabela gerada ao datagrid
DataGrid1.DataSource = ds.Tables(0)

[ô]exibe o número de registros selecionados
With ds.Tables([Ô]exemplo_de_stored_procedure[Ô])
MsgBox(.DefaultView.Count.ToString() & [Ô] registro(s) localizado(s) ![Ô], MsgBoxStyle.Information, Me.Text)
TextBox1.Focus()
End With

Catch sqlex As SqlException
MsgBox([Ô] Erro Numero : [Ô] & sqlex.Number & vbCrLf & [Ô] Erro Descrição : [Ô] & sqlex.Message & vbCrLf & [Ô] Erro na linha no : [Ô] & sqlex.LineNumber)
Catch exc As Exception
MsgBox(exc.Message)
End Try

End Sub

End Class


Fonte: VB.NET - Brincando com Stored Procedures no SQL Server
JAVVOLIVEIRA 17/01/2011 14:06:59
#362488
Obrigado ZEROCAL, ja consegui solucionar,

apenas para ajudar a quem precisar futuramente como eu, fiz o seguinte :

na linha que passa o parametro coloquei assim :

comando.Parameters.Add(New SqlParameter([Ô]@ChequeBruto[Ô], SqlDbType.Decimal, 18))
comando.Parameters([Ô]@ChequeBruto[Ô]).Direction = ParameterDirection.Input
comando.Parameters([Ô]@ChequeBruto[Ô]).Precision = 18
comando.Parameters([Ô]@ChequeBruto[Ô]).Scale = 2
comando.Parameters([Ô]@ChequeBruto[Ô]).Value = ChequeBruto


Obrigado pela atenção.
RODRIGOFERRO 17/01/2011 14:18:42
#362494
Excelente parabéns, se ja solucionou podes fechar o Tópico...

Abraços
Tópico encerrado , respostas não são mais permitidas