Ir para o conteúdo
petelson pascoal

[Resolvido] MySQL e Vb.net

Mensagens Recomendadas

petelson pascoal

eu tenho uma base de dados no mysql e nela tem a tabela provincia(nome_prov, codi_prov) e a tabela municipio(nome_num, codi_mun, codi_prov) ja fiz o insert na tabela provincia e coloquei os nomes da provincia na combobox, agora eu quero fazer o insert dos municipios e ao invés de introduzir o codi_prov eu quero que ao clicar no nome da provincia que coloquei na combo ele faz o insert do municipio com a respetiva provincia sem dijitar o codigo_prov

o inser da provincia que eu fiz e esse;: ins = "INSERT INTO provincia (nome_prov, codigo_prov) VALUES ('" & Txtnome.Text & "','" & Txt_codigo.Text & "')"

na combo eu introduzi :

If conexao.State = ConnectionState.Closed Then
		conexao.ConnectionString = "Server = localhost; user id = root; password = root; database = stock "
		cama.Connection = conexao
		conexao.Open()
		Dim com1, com2, prov As String
		Dim DBDR As MySqlDataReader
		' com = "SELECT nome_prov FROM provincia order by nome_prov asc"
		' cama = New MySql.Data.MySqlClient.MySqlCommand(com, conexao)
		' DBDR = cama.ExecuteReader
		com1 = "SELECT codigo_prov, nome_prov FROM provincia"
		cama = New MySql.Data.MySqlClient.MySqlCommand(com1, conexao)
		DBDR = cama.ExecuteReader
		ComboBox2.SelectedText = "Provincia"
		' Label1.Text = ComboBox2.SelectedItem
		'  ComboBox2.SelectedText = "nome_prov"
		Label1.Text = ComboBox2.SelectedItem
		com2 = "SELECT codigo_prov FROM provincia where nome_prov = " & prov
		' Label1.Text = prov
		While (DBDR.Read())
			'   ComboBox2.SelectedValue = DBDR("nome_prov")
			ComboBox2.Items.Add(DBDR("nome_prov"))
		End While
		cama.Dispose()
		DBDR.Close()
	End If
	lbl_codigo_mu.Visible = False
	Txt_codigo_prov.Visible = False

preciso agora do codigo do insert do municipio tendo em conta o problema por mim apresentado

por favor me ajudem porque preciso de entregar cedo

Editado por Rui Carlos
Tags code + GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
vikcch

Olá,

experimenta usar um INSERT SELECT

INSERT INTO municipio (nome_num, codi_mun, codi_prov) SELECT '" & TxtNome_Mun.Text & "','" & TxtCod_Mun.Text & "', codi_prov FROM provincia WHERE nome_prov = '" & ComboBox2.SelectedItem.ToString & " ' "

o nome_num deve ser nome_mun

Editado por Rui Carlos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jota_wa

Boas

Obter dados a partir de uma descrição/string é sempre arriscado.O ideal seria teres o código da província (codi_prov) no objecto que guardas na ComboBox.O que devias fazer era:

Dim dt As New DataTable

dt.Load(DBDR) 'isto passa a informação do Reader para uma tabela temporária
ComboBox2.DataSource = dt 'define a origem dos dados da ComboBox2
ComboBox2.ValueMember = "codi_prov" 'indica que valor estará na propriedade SelectedValue
ComboBox2.DisplayMember = "nome_prov" 'indica que valor estará na propriedade SelectedText ou mesmo Text

Assim já poderias executar o INSERT de outra maneira:

Dim str As String = String.Format("INSERT INTO municipio VALUES('{0}', {1}, {2})", TxtNome_Mun.Text, TxtCod_Mun.Text, ComboBox2.SelectedValue)

Dim cmd As New MySqlCommand(str, conexao)

If cmd.ExecuteNonQuery > 0 Then
'sucesso
Else
'erro
End If

Cumps

Editado por jota_wa

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.