INSERIR DADOS EM DUAS TABELAS
Boa tarde,
Pessoal estou tenho duas tabelas uma de cadastro e outra de endereço, tenho de cadastrar informações nas duas tabelas porém não estou achando forma de fazer. alguém pode me dar uma mão ? desde jah agradeço.
Pessoal estou tenho duas tabelas uma de cadastro e outra de endereço, tenho de cadastrar informações nas duas tabelas porém não estou achando forma de fazer. alguém pode me dar uma mão ? desde jah agradeço.
Veja se isso aqui te ajuda:
http://social.msdn.microsoft.com/Forums/en-US/adoptpt/thread/11bc74c8-1da5-415a-83a1-905618f72f62
http://social.msdn.microsoft.com/Forums/en-US/adoptpt/thread/11bc74c8-1da5-415a-83a1-905618f72f62
Um código dessa forma não funcionaria ?
myCmd.CommandText = [Ô]INSERT INTO Associados (razao_social, nome_fantasia, cnpj, inscricao_estadual, inscricao_municipal, afe, responsavel, cidade) [Ô] & _
[Ô] VALUES( [ô][Ô] & Tb_RazaoSocial.Text & [Ô][ô], [ô][Ô] & Tb_NomeFantasia.Text & [Ô][ô], [ô][Ô] & Tb_CNPJ.Text & [Ô][ô], [ô][Ô] & Tb_InscEstadual.Text & [Ô][ô], [ô][Ô] & Tb_InscMunicipal.Text & [Ô][ô], [ô][Ô] & Tb_Afe.Text & [Ô][ô], [ô][Ô] & Tb_Resp.Text & [Ô][ô], [ô][Ô] & Tb_Cidade.Text & [Ô][ô] )[Ô]
myCmd2.CommandText = [Ô]INSERT INTO enderecos (rua_end, numero_end, bairro_end, cidade_end, uf_end, complemento_end, ID_associados) [Ô] & _
[Ô] VALUES( [ô][Ô] & Tb_Rua.Text & [Ô][ô], [ô][Ô] & Tb_Numero.Text & [Ô][ô], [ô][Ô] & Tb_Bairro.Text & [Ô][ô], [ô][Ô] & Tb_Cidade2.Text & [Ô][ô], [ô][Ô] & Cb_Estado.Text & [Ô][ô], [ô][Ô] & Tb_Complemento.Text & [Ô][ô], [ô]selec max (ID) from Associados[ô] )[Ô]
galera desculpa qualquer coisa mais como podem ver sou bem leigo, se puderem me ajudar
myCmd.CommandText = [Ô]INSERT INTO Associados (razao_social, nome_fantasia, cnpj, inscricao_estadual, inscricao_municipal, afe, responsavel, cidade) [Ô] & _
[Ô] VALUES( [ô][Ô] & Tb_RazaoSocial.Text & [Ô][ô], [ô][Ô] & Tb_NomeFantasia.Text & [Ô][ô], [ô][Ô] & Tb_CNPJ.Text & [Ô][ô], [ô][Ô] & Tb_InscEstadual.Text & [Ô][ô], [ô][Ô] & Tb_InscMunicipal.Text & [Ô][ô], [ô][Ô] & Tb_Afe.Text & [Ô][ô], [ô][Ô] & Tb_Resp.Text & [Ô][ô], [ô][Ô] & Tb_Cidade.Text & [Ô][ô] )[Ô]
myCmd2.CommandText = [Ô]INSERT INTO enderecos (rua_end, numero_end, bairro_end, cidade_end, uf_end, complemento_end, ID_associados) [Ô] & _
[Ô] VALUES( [ô][Ô] & Tb_Rua.Text & [Ô][ô], [ô][Ô] & Tb_Numero.Text & [Ô][ô], [ô][Ô] & Tb_Bairro.Text & [Ô][ô], [ô][Ô] & Tb_Cidade2.Text & [Ô][ô], [ô][Ô] & Cb_Estado.Text & [Ô][ô], [ô][Ô] & Tb_Complemento.Text & [Ô][ô], [ô]selec max (ID) from Associados[ô] )[Ô]
galera desculpa qualquer coisa mais como podem ver sou bem leigo, se puderem me ajudar
Funciona sim, desde de que após cada commandtext venha um executenowquery, não sei se escrevi certo.
opa vou tentar aqui ... muito obrigado.
o código deixei assim :
Dim myCmd As New Odbc.OdbcCommand
Dim myCmd2 As New Odbc.OdbcCommand
myCmd.Connection = conn
myCmd.CommandText = [Ô]INSERT INTO Associados (razao_social, nome_fantasia, cnpj, inscricao_estadual, inscricao_municipal, afe, responsavel, cidade) [Ô] & _
[Ô] VALUES( [ô][Ô] & Tb_RazaoSocial.Text & [Ô][ô], [ô][Ô] & Tb_NomeFantasia.Text & [Ô][ô], [ô][Ô] & Tb_CNPJ.Text & [Ô][ô], [ô][Ô] & Tb_InscEstadual.Text & [Ô][ô], [ô][Ô] & Tb_InscMunicipal.Text & [Ô][ô], [ô][Ô] & Tb_Afe.Text & [Ô][ô], [ô][Ô] & Tb_Resp.Text & [Ô][ô], [ô][Ô] & Tb_Cidade.Text & [Ô][ô] )[Ô]
myCmd.ExecuteNonQuery()
myCmd2.Connection = conn
myCmd2.CommandText = [Ô]INSERT INTO enderecos (rua_end, numero_end, bairro_end, cidade_end, uf_end, complemento_end, ID_associados)[Ô] & _
[Ô] VALUES ( [ô][Ô] & Tb_Rua.Text & [Ô][ô] , [ô][Ô] & Tb_Numero.Text & [Ô][ô] , [ô][Ô] & Tb_Bairro.Text & [Ô][ô] , [ô][Ô] & Tb_Cidade2.Text & [Ô][ô] , [ô][Ô] & Cb_Estado.Text & [Ô][ô] , [ô][Ô] & Tb_Complemento.Text & [Ô][ô], select ( max) ID from Associados ) [Ô]
myCmd2.ExecuteNonQuery()
deu a mensagem como que eu estou anexando.
Dim myCmd As New Odbc.OdbcCommand
Dim myCmd2 As New Odbc.OdbcCommand
myCmd.Connection = conn
myCmd.CommandText = [Ô]INSERT INTO Associados (razao_social, nome_fantasia, cnpj, inscricao_estadual, inscricao_municipal, afe, responsavel, cidade) [Ô] & _
[Ô] VALUES( [ô][Ô] & Tb_RazaoSocial.Text & [Ô][ô], [ô][Ô] & Tb_NomeFantasia.Text & [Ô][ô], [ô][Ô] & Tb_CNPJ.Text & [Ô][ô], [ô][Ô] & Tb_InscEstadual.Text & [Ô][ô], [ô][Ô] & Tb_InscMunicipal.Text & [Ô][ô], [ô][Ô] & Tb_Afe.Text & [Ô][ô], [ô][Ô] & Tb_Resp.Text & [Ô][ô], [ô][Ô] & Tb_Cidade.Text & [Ô][ô] )[Ô]
myCmd.ExecuteNonQuery()
myCmd2.Connection = conn
myCmd2.CommandText = [Ô]INSERT INTO enderecos (rua_end, numero_end, bairro_end, cidade_end, uf_end, complemento_end, ID_associados)[Ô] & _
[Ô] VALUES ( [ô][Ô] & Tb_Rua.Text & [Ô][ô] , [ô][Ô] & Tb_Numero.Text & [Ô][ô] , [ô][Ô] & Tb_Bairro.Text & [Ô][ô] , [ô][Ô] & Tb_Cidade2.Text & [Ô][ô] , [ô][Ô] & Cb_Estado.Text & [Ô][ô] , [ô][Ô] & Tb_Complemento.Text & [Ô][ô], select ( max) ID from Associados ) [Ô]
myCmd2.ExecuteNonQuery()
deu a mensagem como que eu estou anexando.
boa noite
Pelo visto o Mysql não esta aceitando a sua consulta dentro do Insert poderia até verificar a versão.
Uma alternativa sera fazer as 2 inserções e no meio delas verificar qual o ultimo registro para fazer a ultima
um exemplo rapido para ajudar....
[ô]String de dados: insercao e verificao de ultimo registro
Dim stSql1 As String = [Ô]Insert into Produtos (ProductName, QuantityPerUnit, CategoryID) Values (@ProductName, @QuantityPerUnit, @CategoryID);[Ô]
Dim stSql2 As String = [Ô]select MAX(ProductID) from Produtos[Ô]
Dim stSql3 As String = [Ô]Insert into Endereco (Endereco,Bairro) Values (@Endereco,@Bairro)
[ô]Varial para guarda ultimo registro
dim lblUltimoReg as String
[ô]conexao com o banco de dados
Dim sConn As New SqlConnection(conex)
Dim Cmd1 As New SqlCommand(stSql1, sConn)
Dim Cmd2 As New SqlCommand(stSql2, sConn)
Dim Cmd3 As New SqlCommand(stSql2, sConn)
[ô]Abrir conexao unica vez e fazer todas as tarefas
sConn.Open()
[ô]Inserir registro
Cmd1.ExecuteNonQuery()
[ô]Verificar qual o ultimo Codigo e guardar varialvel
lblUltimoReg t = Cmd2.ExecuteScalar()
[ô]Inserir o ultimo registro com o valor do registroregistro
Cmd1.ExecuteNonQuery()
[ô]fechar a conexao banco
sConn.Close()
Pelo visto o Mysql não esta aceitando a sua consulta dentro do Insert poderia até verificar a versão.
Uma alternativa sera fazer as 2 inserções e no meio delas verificar qual o ultimo registro para fazer a ultima
um exemplo rapido para ajudar....
[ô]String de dados: insercao e verificao de ultimo registro
Dim stSql1 As String = [Ô]Insert into Produtos (ProductName, QuantityPerUnit, CategoryID) Values (@ProductName, @QuantityPerUnit, @CategoryID);[Ô]
Dim stSql2 As String = [Ô]select MAX(ProductID) from Produtos[Ô]
Dim stSql3 As String = [Ô]Insert into Endereco (Endereco,Bairro) Values (@Endereco,@Bairro)
[ô]Varial para guarda ultimo registro
dim lblUltimoReg as String
[ô]conexao com o banco de dados
Dim sConn As New SqlConnection(conex)
Dim Cmd1 As New SqlCommand(stSql1, sConn)
Dim Cmd2 As New SqlCommand(stSql2, sConn)
Dim Cmd3 As New SqlCommand(stSql2, sConn)
[ô]Abrir conexao unica vez e fazer todas as tarefas
sConn.Open()
[ô]Inserir registro
Cmd1.ExecuteNonQuery()
[ô]Verificar qual o ultimo Codigo e guardar varialvel
lblUltimoReg t = Cmd2.ExecuteScalar()
[ô]Inserir o ultimo registro com o valor do registroregistro
Cmd1.ExecuteNonQuery()
[ô]fechar a conexao banco
sConn.Close()
correção
[ô]Inserir registro
Cmd1.ExecuteNonQuery()
[ô]Verificar qual o ultimo Codigo e guardar varialvel
lblUltimoReg t = Cmd2.ExecuteScalar()
[ô]Inserir o ultimo registro com o valor do registroregistro
Cmd3.ExecuteNonQuery()
[ô]fechar a conexao banco
sConn.Close()
[ô]Inserir registro
Cmd1.ExecuteNonQuery()
[ô]Verificar qual o ultimo Codigo e guardar varialvel
lblUltimoReg t = Cmd2.ExecuteScalar()
[ô]Inserir o ultimo registro com o valor do registroregistro
Cmd3.ExecuteNonQuery()
[ô]fechar a conexao banco
sConn.Close()
Marcelo o que seria esse lblUltimoReg t estou meio que transpassando aqui para o que eu acho que é mais esse pedaço não intendi, é uma label ?
No caso da String e para pegar o seu valor MAX ou qualquer valor do BD
+/- fazendo a sua consulta para o sistema
=============================
[ô]Varial para guarda ultimo registro
dim lblUltimoReg as String [ô] pegar o valor Max da sua consulta select ( max) ID from Associados )
[ô]String de dados: insercao e verificao de ultimo registro
Dim stSql1 As String = [Ô]INSERT INTO Associados (razao_social, nome_fantasia, cnpj, inscricao_estadual, inscricao_municipal, afe, responsavel, cidade) [Ô] & _
[Ô] VALUES( [ô][Ô] & Tb_RazaoSocial.Text & [Ô][ô], [ô][Ô] & Tb_NomeFantasia.Text & [Ô][ô], [ô][Ô] & Tb_CNPJ.Text & [Ô][ô], [ô][Ô] & Tb_InscEstadual.Text & [Ô][ô], [ô][Ô] & Tb_InscMunicipal.Text & [Ô][ô], [ô][Ô] & Tb_Afe.Text & [Ô][ô], [ô][Ô] & Tb_Resp.Text & [Ô][ô], [ô][Ô] & Tb_Cidade.Text & [Ô][ô] )[Ô]
Dim stSql2 As String = [Ô]select [Ô]( max) ID from Associados )[Ô]
Dim stSql3 As String = [Ô]INSERT INTO enderecos (rua_end, numero_end, bairro_end, cidade_end, uf_end, complemento_end, ID_associados)[Ô] & _
[Ô] VALUES ( [ô][Ô] & Tb_Rua.Text & [Ô][ô] , [ô][Ô] & Tb_Numero.Text & [Ô][ô] , [ô][Ô] & Tb_Bairro.Text & [Ô][ô] , [ô][Ô] & Tb_Cidade2.Text & [Ô][ô] , [ô][Ô] & Cb_Estado.Text & [Ô][ô] , [ô][Ô] & Tb_Complemento.Text & [Ô][ô], [Ô] & lblUltimoReg & [Ô] ) [Ô]
depois e so abrir o BD e executar os comando do SQL
+/- fazendo a sua consulta para o sistema
=============================
[ô]Varial para guarda ultimo registro
dim lblUltimoReg as String [ô] pegar o valor Max da sua consulta select ( max) ID from Associados )
[ô]String de dados: insercao e verificao de ultimo registro
Dim stSql1 As String = [Ô]INSERT INTO Associados (razao_social, nome_fantasia, cnpj, inscricao_estadual, inscricao_municipal, afe, responsavel, cidade) [Ô] & _
[Ô] VALUES( [ô][Ô] & Tb_RazaoSocial.Text & [Ô][ô], [ô][Ô] & Tb_NomeFantasia.Text & [Ô][ô], [ô][Ô] & Tb_CNPJ.Text & [Ô][ô], [ô][Ô] & Tb_InscEstadual.Text & [Ô][ô], [ô][Ô] & Tb_InscMunicipal.Text & [Ô][ô], [ô][Ô] & Tb_Afe.Text & [Ô][ô], [ô][Ô] & Tb_Resp.Text & [Ô][ô], [ô][Ô] & Tb_Cidade.Text & [Ô][ô] )[Ô]
Dim stSql2 As String = [Ô]select [Ô]( max) ID from Associados )[Ô]
Dim stSql3 As String = [Ô]INSERT INTO enderecos (rua_end, numero_end, bairro_end, cidade_end, uf_end, complemento_end, ID_associados)[Ô] & _
[Ô] VALUES ( [ô][Ô] & Tb_Rua.Text & [Ô][ô] , [ô][Ô] & Tb_Numero.Text & [Ô][ô] , [ô][Ô] & Tb_Bairro.Text & [Ô][ô] , [ô][Ô] & Tb_Cidade2.Text & [Ô][ô] , [ô][Ô] & Cb_Estado.Text & [Ô][ô] , [ô][Ô] & Tb_Complemento.Text & [Ô][ô], [Ô] & lblUltimoReg & [Ô] ) [Ô]
depois e so abrir o BD e executar os comando do SQL
Dim myCmd As New Odbc.OdbcCommand
Dim myCmd2 As New Odbc.OdbcCommand
myCmd.Connection = conn
myCmd.CommandText = [Ô]INSERT INTO Associados (razao_social, nome_fantasia, cnpj, inscricao_estadual, inscricao_municipal, afe, responsavel, cidade) [Ô] & _
[Ô] VALUES( [ô][Ô] & Tb_RazaoSocial.Text & [Ô][ô], [ô][Ô] & Tb_NomeFantasia.Text & [Ô][ô], [ô][Ô] & Tb_CNPJ.Text & [Ô][ô], [ô][Ô] & Tb_InscEstadual.Text & [Ô][ô], [ô][Ô] & Tb_InscMunicipal.Text & [Ô][ô], [ô][Ô] & Tb_Afe.Text & [Ô][ô], [ô][Ô] & Tb_Resp.Text & [Ô][ô], [ô][Ô] & Tb_Cidade.Text & [Ô][ô] )[Ô]
myCmd.ExecuteNonQuery()
myCmd2.Connection = conn
myCmd2.CommandText = [Ô]INSERT INTO enderecos (rua_end, numero_end, bairro_end, cidade_end, uf_end, complemento_end, ID_associados)[Ô] & _
[Ô] VALUES ( [ô][Ô] & Tb_Rua.Text & [Ô][ô] , [ô][Ô] & Tb_Numero.Text & [Ô][ô] , [ô][Ô] & Tb_Bairro.Text & [Ô][ô] , [ô][Ô] & Tb_Cidade2.Text & [Ô][ô] , [ô][Ô] & Cb_Estado.Text & [Ô][ô] , [ô][Ô] & Tb_Complemento.Text & [Ô][ô], [txt-color=#e80000]select ( max) ID from Associados [/txt-color]) [Ô] [ô] é aqui onde está o erro.Retire.
myCmd2.ExecuteNonQuery()
Dim myCmd2 As New Odbc.OdbcCommand
myCmd.Connection = conn
myCmd.CommandText = [Ô]INSERT INTO Associados (razao_social, nome_fantasia, cnpj, inscricao_estadual, inscricao_municipal, afe, responsavel, cidade) [Ô] & _
[Ô] VALUES( [ô][Ô] & Tb_RazaoSocial.Text & [Ô][ô], [ô][Ô] & Tb_NomeFantasia.Text & [Ô][ô], [ô][Ô] & Tb_CNPJ.Text & [Ô][ô], [ô][Ô] & Tb_InscEstadual.Text & [Ô][ô], [ô][Ô] & Tb_InscMunicipal.Text & [Ô][ô], [ô][Ô] & Tb_Afe.Text & [Ô][ô], [ô][Ô] & Tb_Resp.Text & [Ô][ô], [ô][Ô] & Tb_Cidade.Text & [Ô][ô] )[Ô]
myCmd.ExecuteNonQuery()
myCmd2.Connection = conn
myCmd2.CommandText = [Ô]INSERT INTO enderecos (rua_end, numero_end, bairro_end, cidade_end, uf_end, complemento_end, ID_associados)[Ô] & _
[Ô] VALUES ( [ô][Ô] & Tb_Rua.Text & [Ô][ô] , [ô][Ô] & Tb_Numero.Text & [Ô][ô] , [ô][Ô] & Tb_Bairro.Text & [Ô][ô] , [ô][Ô] & Tb_Cidade2.Text & [Ô][ô] , [ô][Ô] & Cb_Estado.Text & [Ô][ô] , [ô][Ô] & Tb_Complemento.Text & [Ô][ô], [txt-color=#e80000]select ( max) ID from Associados [/txt-color]) [Ô] [ô] é aqui onde está o erro.Retire.
myCmd2.ExecuteNonQuery()
Tópico encerrado , respostas não são mais permitidas