Jump to content
petelson pascoal

[Resolvido] MySQL e Vb.net

Recommended Posts

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

Edited by Rui Carlos
Tags code + GeSHi

Share this post


Link to post
Share on other 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

Edited by Rui Carlos

Share this post


Link to post
Share on other 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

Edited by jota_wa

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.