CADASTRO EM VB.NET USANDO STORED PROCEDURE

JRABELO 08/05/2013 20:11:41
#423147
Boa noite Pessoal,

Criei o Formulário de Cadastro conforme acima e também criei um Stored Procedure conforme abaixo.

Como um poderia chamar essa Stored Procedure para Cadastrar o que foi digitado no Formulário ? via programação em vb.net.


Por favor, alguém poderia me ajudar ? desde já obrigado.
JRABELO 08/05/2013 20:46:12
#423150
Segue abaixo, a Stored Procedure que estou usando.

DELIMITER $$

USE 'test'$$

DROP PROCEDURE IF EXISTS 'SP_CadAmigo'$$

CREATE DEFINER='root'@'localhost' PROCEDURE 'SP_CadAmigo'(
IN COD INT(10),
NM_AMIGO VARCHAR(60),
END_AMIGO VARCHAR(200),
CID_AMIGO VARCHAR(100),
BAR_AMIGO VARCHAR(100)
)
BEGIN
REPLACE INTO TB_AMIGOS VALUES (COD,NM_AMIGO,END_AMIGO,CID_AMIGO,BAR_AMIGO);
END$$

DELIMITER ;
JRABELO 08/05/2013 21:02:37
#423152

Este erro acima aparece quando clico em Salvar, assim chama a procedure.


Aprendi chamar a Stored Procedure conforme no Código abaixo:

Private Sub btnSalvar_Click(sender As System.Object, e As System.EventArgs) Handles btnSalvar.Click

conecta()

Try
cnn.Open()
cmd = New MySqlCommand([Ô]Call SP_CadAmigo[Ô], cnn)
cmd.ExecuteNonQuery()
CarregaCodigo()
CarregaDatagrid()
LimpaCampos()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
cnn.Close()
End Try

End Sub


FELLIPEASSIS 09/05/2013 13:46:05
#423188
mais vc quer que faça oq? carregar um datagridview? gravar dados ?
F001E 09/05/2013 17:09:07
#423205
Pra voce chamar a sua StoreProcedure faça assim....
SP_CAIXA_MOVIMENTOS é uma StoreProcedure q eu uso aqui..

Dim oCMD As New SqlCommand()
With oCMD
.CommandText = [Ô]SP_CAIXA_MOVIMENTOS[Ô]
.CommandType = CommandType.StoredProcedure
.Parameters.Add([Ô]@EMPRESA[Ô], SqlDbType.VarChar).Value = Empresa
.Parameters.Add([Ô]@SEQUENCIA[Ô], SqlDbType.BigInt).Value = Sequencia
.Parameters.Add([Ô]@DATA[Ô], SqlDbType.DateTime).Value = FormataData(txtData.Text, 0)
.Parameters.Add([Ô]@HISTORICO[Ô], SqlDbType.BigInt).Value = txtHistorico.Text.Trim
.Parameters.Add([Ô]@COMPLEMENTO[Ô], SqlDbType.VarChar).Value = txtComplemento.Text.Trim
.Parameters.Add([Ô]@COMPLEMENTO1[Ô], SqlDbType.VarChar).Value = [Ô][Ô]
.Parameters.Add([Ô]@VALOR[Ô], SqlDbType.Money).Value = txtValor.Text.Trim
.Parameters.Add([Ô]@DATALANCAMENTO[Ô], SqlDbType.DateTime).Value = FormataData(Date.Now, 0)
.Parameters.Add([Ô]@GRUPO[Ô], SqlDbType.BigInt).Value = IIf(txtGrupo.Text.Trim = [Ô][Ô], DBNull.Value, txtGrupo.Text.Trim)
.Connection = BancoSQLMagic
.ExecuteNonQuery()
End With
JRABELO 09/05/2013 20:45:14
#423216
Estou usando Mysql na minha Aplicação.

Tem alguma de Mysql ?
JRABELO 09/05/2013 21:25:16
#423219
Estou fazendo assim para Cadastrar usando a Procedur SP_INSERIR

Try
cnn.Open()
cmd = New MySqlCommand([Ô]Call SP_INSERIR[Ô], cnn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue([Ô]vCod[Ô], txtCodigo.Text)
cmd.Parameters.AddWithValue([Ô]vNome[Ô], txtNome.Text)
cmd.Parameters.AddWithValue([Ô]vEndereco[Ô], txtEndereco.Text)
cmd.Parameters.AddWithValue([Ô]vCidade[Ô], txtCidade.Text)
cmd.Parameters.AddWithValue([Ô]vBairro[Ô], txtBairro.Text)
cmd.ExecuteNonQuery()
CarregaCodigo()
CarregaDatagrid()
LimpaCampos()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
cnn.Close()
End Try
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Porém aparece esse erro abaixo:

Procedure or function CALL SP_INSERIR cannot be found in database test


Alguém poderia me ajudar ???
F001E 10/05/2013 08:47:02
#423231
Citação:

:
Estou fazendo assim para Cadastrar usando a Procedur SP_INSERIR

Try
cnn.Open()
cmd = New MySqlCommand([Ô]Call SP_INSERIR[Ô], cnn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue([Ô]vCod[Ô], txtCodigo.Text)
cmd.Parameters.AddWithValue([Ô]vNome[Ô], txtNome.Text)
cmd.Parameters.AddWithValue([Ô]vEndereco[Ô], txtEndereco.Text)
cmd.Parameters.AddWithValue([Ô]vCidade[Ô], txtCidade.Text)
cmd.Parameters.AddWithValue([Ô]vBairro[Ô], txtBairro.Text)
cmd.ExecuteNonQuery()
CarregaCodigo()
CarregaDatagrid()
LimpaCampos()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
cnn.Close()
End Try
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Porém aparece esse erro abaixo:

Procedure or function CALL SP_INSERIR cannot be found in database test


Alguém poderia me ajudar ???



Qual é no nome da Sua SP ? é SP_INSERIR ou CALL_SP_INSERIR ? tem que colocar o mesmo nome da SP que esta criada no banco de Dados...
e acrescente essa linha tbm ente SQLCommand e CommandType....
oCMD.CommandText = [Ô]SP_INSERIR[Ô];
F001E 10/05/2013 08:49:56
#423232
Tenta fazer desse jeito também....

SqlCommand cmd= new SqlCommand();
cmd.CommandText = [Ô]SP_INSERIR[Ô];
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue([Ô]vCod[Ô], txtCodigo.Text)
cmd.Parameters.AddWithValue([Ô]vNome[Ô], txtNome.Text)
cmd.Parameters.AddWithValue([Ô]vEndereco[Ô], txtEndereco.Text)
cmd.Parameters.AddWithValue([Ô]vCidade[Ô], txtCidade.Text)
cmd.Parameters.AddWithValue([Ô]vBairro[Ô], txtBairro.Text)
cmd.Connection = cnn;
cmd.ExecuteNonQuery()
JRABELO 10/05/2013 17:26:24
#423308
Deu certo!!!
Obrigado.

Estou encerrado....
Tópico encerrado , respostas não são mais permitidas