FATAL ERROR ENCOUNTERED DURING COMMAND EXECUTION
Pessoal.. estou com um problema q esta me matandooooo!!!
Eu estou fazendo um programa q cadastra clientes e funcionarios com MYSQL!!
O cadastro de Clientes ocorre tudo certo Faz INSERT, UPDATE E DELETE tudo certinho...
Quando terminei ele, comecei a fazer o de funcionario... O INSERT e DELETE estao funcionando mas o UPDATE nao quer funcionar nao sei pq, sendo q esta tudo igual!!
Vou colocar aqui o UPDATE do Cliente: O cliente faz update em 4 tabelas: PF, Telefone, Endereco e Cliente:
Eu estou fazendo um programa q cadastra clientes e funcionarios com MYSQL!!
O cadastro de Clientes ocorre tudo certo Faz INSERT, UPDATE E DELETE tudo certinho...
Quando terminei ele, comecei a fazer o de funcionario... O INSERT e DELETE estao funcionando mas o UPDATE nao quer funcionar nao sei pq, sendo q esta tudo igual!!
Vou colocar aqui o UPDATE do Cliente: O cliente faz update em 4 tabelas: PF, Telefone, Endereco e Cliente:
Private Sub Editar_Salvar()
If txt_Nome.Text = [Ô][Ô] Then
btnAdicionar()
MessageBox.Show([Ô]é necessário que todos os campos com * sejam preenchidos![Ô], [Ô]Aviso[Ô], MessageBoxButtons.OK, MessageBoxIcon.Information)
txt_Nome.Focus()
Exit Sub
End If
Dim con As New MySqlConnection([Ô]server=localhost; user id=root; password=admin; database=workshopmanager[Ô])
Dim cmd As New MySqlCommand
Dim reader As MySqlDataReader
cmd = con.CreateCommand
con.Open()
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = [Ô]SELECT * FROM cliente WHERE nome_Cliente = @nomecliente[Ô]
.Parameters.Add([Ô]@nomecliente[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@nomecliente[Ô]).Value = txt_Nome.Text
End With
reader = cmd.ExecuteReader
If reader.Read() Then
codCliente = reader([Ô]cod_Cliente[Ô])
codEndereco = reader([Ô]cod_Endereco[Ô])
codTelefone = reader([Ô]cod_Telefone[Ô])
codPF = reader([Ô]cod_pf[Ô])
End If
reader.Close()
con.Close()
con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = [Ô]UPDATE endereco SET cep_Endereco = @cep, nome_Endereco = @end, numero_Endereco = @num, complemento_Endereco = @compl, bairro_Endereco = @bairro, cidade_Endereco = @cidade, uf_Endereco = @uf, pais_Endereco = @pais WHERE cod_Endereco = @codendereco[Ô]
.Parameters.Add([Ô]@codendereco[Ô], MySqlDbType.Int32)
.Parameters([Ô]@codendereco[Ô]).Value = codEndereco
.Parameters.Add([Ô]@cep[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@cep[Ô]).Value = txt_cep.Text
.Parameters.Add([Ô]@end[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@end[Ô]).Value = txt_Endereco.Text
.Parameters.Add([Ô]@num[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@num[Ô]).Value = txt_numero.Text
.Parameters.Add([Ô]@compl[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@compl[Ô]).Value = txt_complemento.Text
.Parameters.Add([Ô]@bairro[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@bairro[Ô]).Value = txt_bairro.Text
.Parameters.Add([Ô]@cidade[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@cidade[Ô]).Value = txt_cidade.Text
.Parameters.Add([Ô]@uf[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@uf[Ô]).Value = txt_uf.Text
.Parameters.Add([Ô]@pais[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@pais[Ô]).Value = txt_pais.Text
.ExecuteNonQuery()
End With
con.Close()
con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = [Ô]UPDATE telefone SET residencial_Telefone = @res, celular_Telefone = @cel, fax_Telefone = @fax WHERE cod_Telefone = @codtelefone[Ô]
.Parameters.Add([Ô]@codtelefone[Ô], MySqlDbType.Int32)
.Parameters([Ô]@codtelefone[Ô]).Value = codTelefone
.Parameters.Add([Ô]@res[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@res[Ô]).Value = txt_Residencial.Text
.Parameters.Add([Ô]@cel[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@cel[Ô]).Value = txt_Celular.Text
.Parameters.Add([Ô]@fax[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@fax[Ô]).Value = txt_fax.Text
.ExecuteNonQuery()
End With
con.Close()
con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = [Ô]UPDATE pf SET rg_pf = @rg, cpf_pf = @cpf, dataNascimento_pf = @dt, sexo_pf = @sexo, email_pf = @email WHERE cod_pf = @codpff[Ô]
.Parameters.Add([Ô]@codpff[Ô], MySqlDbType.Int32)
.Parameters([Ô]@codpff[Ô]).Value = codPF
.Parameters.Add([Ô]@rg[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@rg[Ô]).Value = txt_rg.Text
.Parameters.Add([Ô]@cpf[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@cpf[Ô]).Value = txt_cpf.Text
.Parameters.Add([Ô]@dt[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@dt[Ô]).Value = txt_Datanasci.Text
.Parameters.Add([Ô]@sexo[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@sexo[Ô]).Value = cmb_Sexo.Text
.Parameters.Add([Ô]@email[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@email[Ô]).Value = txt_Email.Text
.ExecuteNonQuery()
End With
con.Close()
con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = [Ô]UPDATE cliente SET nome_Cliente = @nome, contato_Cliente = @cont, observacoes_Cliente = @obs, tipo_Cliente = @tipo WHERE cod_Cliente = @codCliente[Ô]
.Parameters.Add([Ô]@codCliente[Ô], MySqlDbType.Int32)
.Parameters([Ô]@codCliente[Ô]).Value = codCliente
.Parameters.Add([Ô]@nome[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@nome[Ô]).Value = Trim(txt_Nome.Text)
.Parameters.Add([Ô]@cont[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@cont[Ô]).Value = Trim(txt_Contato.Text)
.Parameters.Add([Ô]@obs[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@obs[Ô]).Value = Trim(txt_obs.Text)
.Parameters.Add([Ô]@tipo[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@tipo[Ô]).Value = Trim(cmb_Pessoa.Text)
.ExecuteNonQuery()
End With
con.Close()
MsgBox([Ô]Alteração Feita com Sucesso![Ô], MsgBoxStyle.Information, [Ô]ConcluÃdo[Ô])
ProximoCod()
End Sub
----- CONTINUAÇÃO ----
e agora o UPDATE do fornecedor... Esse faz update em duas tabelas só: Endereco e Fornecedor:
Na tabela endereco o UPDATE funciona, tanto q se eu mudar os dados de endereco eles atualizam.... Mas ai chega na linha [Ô].ExecuteNonQuery()[Ô] da tabela Fornecedor.... e da esse erro: FATAL ERROR ENCOUNTERED DURING COMMAND EXECUTION
Tabelas do banco:
e agora o UPDATE do fornecedor... Esse faz update em duas tabelas só: Endereco e Fornecedor:
Private Sub editar_salvar()
If txt_razao.Text = [Ô][Ô] Then
btnAdicionar()
MessageBox.Show([Ô]é necessário que todos os campos com * sejam preenchidos![Ô], [Ô]Aviso[Ô], MessageBoxButtons.OK, MessageBoxIcon.Information)
txt_razao.Focus()
Exit Sub
End If
Dim con As New MySqlConnection([Ô]server=localhost; user id=root; password=admin; database=workshopmanager[Ô])
Dim cmd As New MySqlCommand
Dim reader As MySqlDataReader
cmd = con.CreateCommand
con.Open()
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = [Ô]SELECT * FROM fornecedor WHERE razaosocial_Fornecedor = @razaosocial[Ô]
.Parameters.Add([Ô]@razaosocial[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@razaosocial[Ô]).Value = txt_razao.Text
End With
reader = cmd.ExecuteReader
If reader.Read() Then
codFornecedor = reader([Ô]cod_Fornecedor[Ô])
codEndereco = reader([Ô]cod_Endereco[Ô])
End If
reader.Close()
con.Close()
con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = [Ô]UPDATE endereco SET cep_Endereco = @cep, nome_Endereco = @end, numero_Endereco = @num, complemento_Endereco = @compl, bairro_Endereco = @bairro, cidade_Endereco = @cidade, uf_Endereco = @uf, pais_Endereco = @pais WHERE cod_Endereco = @codendereco[Ô]
.Parameters.Add([Ô]@codendereco[Ô], MySqlDbType.Int32)
.Parameters([Ô]@codendereco[Ô]).Value = codEndereco
.Parameters.Add([Ô]@cep[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@cep[Ô]).Value = txt_cep.Text
.Parameters.Add([Ô]@end[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@end[Ô]).Value = txt_Endereco.Text
.Parameters.Add([Ô]@num[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@num[Ô]).Value = txt_numero.Text
.Parameters.Add([Ô]@compl[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@compl[Ô]).Value = txt_complemento.Text
.Parameters.Add([Ô]@bairro[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@bairro[Ô]).Value = txt_bairro.Text
.Parameters.Add([Ô]@cidade[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@cidade[Ô]).Value = txt_cidade.Text
.Parameters.Add([Ô]@uf[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@uf[Ô]).Value = txt_uf.Text
.Parameters.Add([Ô]@pais[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@pais[Ô]).Value = txt_pais.Text
.ExecuteNonQuery()
End With
con.Close()
con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = [Ô]UPDATE fornecedor SET razaosocial_Fornecedor = @razao, nome_Fornecedor = @nome, contato_Fornecedor = @contato, observacoes_Fornecedor = @obs, horadata_Fornecedor = @hr, cnpj_Fornecedor = @cnpj, telcomercial_Fornecedor = @telcomercial, telcomercial2_Fornecedor = @telcomercial2, email_Fornecedor = @email, fax_Fornecedor = @fax WHERE cod_Fornecedor = @codFornecedor[Ô]
.Parameters.Add([Ô]@codFornecedor[Ô], MySqlDbType.Int32)
.Parameters([Ô]@codFornecedor[Ô]).Value = codFornecedor
.Parameters.Add([Ô]@razao[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@razao[Ô]).Value = Trim(txt_razao.Text)
.Parameters.Add([Ô]@nome[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@nome[Ô]).Value = Trim(txt_Nome.Text)
.Parameters.Add([Ô]@contato[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@contato[Ô]).Value = Trim(txt_Contato.Text)
.Parameters.Add([Ô]@obs[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@obs[Ô]).Value = Trim(txt_obs.Text)
.Parameters.Add([Ô]@horadata[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@horadata[Ô]).Value = Trim(lbl_cadastroText.Text)
.Parameters.Add([Ô]@cnpj[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@cnpj[Ô]).Value = Trim(txt_cnpj.Text)
.Parameters.Add([Ô]@telcomercial[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@telcomercial[Ô]).Value = Trim(txt_comercial.Text)
.Parameters.Add([Ô]@telcomercial2[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@telcomercial2[Ô]).Value = Trim(txt_comercial2.Text)
.Parameters.Add([Ô]@email[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@email[Ô]).Value = Trim(txt_Email.Text)
.Parameters.Add([Ô]@fax[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@fax[Ô]).Value = Trim(txt_fax.Text)
.ExecuteNonQuery()
End With
MsgBox([Ô]Alteração Feita com Sucesso![Ô], MsgBoxStyle.Information, [Ô]ConcluÃdo[Ô])
ProximoCod()
con.Close()
End Sub
Na tabela endereco o UPDATE funciona, tanto q se eu mudar os dados de endereco eles atualizam.... Mas ai chega na linha [Ô].ExecuteNonQuery()[Ô] da tabela Fornecedor.... e da esse erro: FATAL ERROR ENCOUNTERED DURING COMMAND EXECUTION
Tabelas do banco:
Create table Endereco (
cod_Endereco integer unsigned primary key not null auto_increment,
nome_Endereco varchar(160),
numero_Endereco varchar(8),
complemento_Endereco varchar(20),
cep_Endereco varchar(10),
bairro_Endereco varchar(30),
cidade_Endereco varchar(30),
uf_Endereco char(2),
pais_Endereco varchar(20)) ENGINE=INNODB;
Create table Fornecedor (
cod_Fornecedor integer unsigned primary key not null auto_increment,
razaosocial_Fornecedor varchar(100) not null,
nome_Fornecedor varchar(100),
contato_Fornecedor varchar(20),
observacoes_Fornecedor varchar(100),
horadata_Fornecedor varchar(30),
CNPJ_Fornecedor varchar(40),
telComercial_Fornecedor varchar(14),
telComercial2_Fornecedor varchar(14),
email_Fornecedor varchar(150),
fax_Fornecedor varchar(14),
cod_Endereco integer unsigned not null,
Foreign Key (cod_Endereco) references Endereco (cod_Endereco) ON DELETE CASCADE) ENGINE=INNODB;
Tópico encerrado , respostas não são mais permitidas