CADASTRO EM VB.NET USANDO STORED PROCEDURE
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.
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 ;
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
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
Tem alguma de Mysql ?
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 ???
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[Ô];
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()
Obrigado.
Estou encerrado....