Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

anaricko

passar items listbox para banco dados

Recommended Posts

Bom dia

 

É o seguinte eu tenho um DropDownList com n nomes e à medida que vou seleccionando eu vou preenchendo uma listbox para ser mais facil depois eliminar um nome caso tenha enganado na selecção. A questão é que no final de todos os nomes seleccionados que pretendo queria coloca-los na base dados.

 

A minha base dados sql tá formada com um Cod_Pedido e o NomeDest

E à medida que realizo o meu codigo so fica gravado o ultimo nome que selecionei na dropdownlist. Onde está o problema??

 

Código (vb.net):

Dim conn As New System.Data.SqlClient.SqlConnection()

conn.ConnectionString = _Default.conne

conn.Open()

Dim destp As String

destp = DropDownList3.Text

 

Dim c As String

c = DropDownList1.Text

Dim sel As System.Data.SqlClient.SqlCommand = conn.CreateCommand()

sel.CommandText = " SELECT NomeDest FROM Pedidos WHERE Cod_Pedido = '" & c & "'"

 

 

 

conn.Close()

conn.Open()

 

Dim insdd As System.Data.SqlClient.SqlCommand = conn.CreateCommand()

insdd.CommandText = " UPDATE Pedidos SET NomeDest = '" & destp & "' WHERE Cod_Pedido = '" & c & "'"

insdd.ExecuteNonQuery()

 

Dim db_r As SqlClient.SqlDataReader = sel.ExecuteReader(CommandBehavior.Default)

Dim t As String

Dim i As Integer

Do While db_r.Read

t = db_r.Item(0).ToString

For i = 1 To db_r.FieldCount - 1

t &= vbTab & db_r.Item(i).ToString

Next i

ListBox1.Items.Add(t)

Loop

 

Protected Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click

If ListBox1.SelectedIndex > -1 Then

ListBox1.Items.RemoveAt(ListBox1.SelectedIndex)

End If

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia

 

É o seguinte eu tenho um DropDownList com n nomes e à medida que vou seleccionando eu vou preenchendo uma listbox para ser mais facil depois eliminar um nome caso tenha enganado na selecção. A questão é que no final de todos os nomes seleccionados que pretendo queria coloca-los na base dados.

 

A minha base dados sql tá formada com um Cod_Pedido e o NomeDest

E à medida que realizo o meu codigo so fica gravado o ultimo nome que selecionei na dropdownlist. Onde está o problema??

 

Código (vb.net):

Dim conn As New System.Data.SqlClient.SqlConnection()

conn.ConnectionString = _Default.conne

conn.Open()

Dim destp As String

destp = DropDownList3.Text

 

Dim c As String

c = DropDownList1.Text

Dim sel As System.Data.SqlClient.SqlCommand = conn.CreateCommand()

sel.CommandText = " SELECT NomeDest FROM Pedidos WHERE Cod_Pedido = '" & c & "'"

 

 

 

conn.Close()

conn.Open()

 

Dim insdd As System.Data.SqlClient.SqlCommand = conn.CreateCommand()

insdd.CommandText = " UPDATE Pedidos SET NomeDest = '" & destp & "' WHERE Cod_Pedido = '" & c & "'"

insdd.ExecuteNonQuery()

 

Dim db_r As SqlClient.SqlDataReader = sel.ExecuteReader(CommandBehavior.Default)

Dim t As String

Dim i As Integer

Do While db_r.Read

t = db_r.Item(0).ToString

For i = 1 To db_r.FieldCount - 1

t &= vbTab & db_r.Item(i).ToString

Next i

ListBox1.Items.Add(t)

Loop

 

Protected Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click

If ListBox1.SelectedIndex > -1 Then

ListBox1.Items.RemoveAt(ListBox1.SelectedIndex)

End If

 

é o seguinte... pelo que eu percebi no teu código, tu definiu uma variável String destp, que pega o texto da DropDownList, certo? Mas esta variável pega apenas o texto da DropDownList, que é o valor que está atualmente selecionado.

Se você quiser salvar todos os itens que você seleciona no banco de dados (já que você lista todos os elementos selecionados na ListBox), tu poderias fazer o seguinte:

ao invés de selecionar os valores de destp e c pelas DropDownList, você poderia colocar, além dos valores da DropDownList3 na ListBox, os da DropDownList1 em outra ListBox, entituladas para a tua preferência. Pelo que eu entendi, c é uma codificação do pedido e destp é um nome.

Fazer um laço de repetição para as ListBox, não para as DropDownList. Sairia mais ou menos assim:

For i=0 To ListBox1.Items.Count - 1 'porque a contagem dos itens será maior que o último índice
insdd.CommandText = " UPDATE Pedidos SET NomeDest = '" & ListBox1.Items(i).ToString() & "' WHERE Cod_Pedido = '" &  ListBox2.Items(i).ToString()  & "'"
insdd.ExecuteNonQuery()
Next i

Agora a pergunta é: os códigos já estão registrados no BD? Este é só um formulário de atualização de Pedidos?

 

Espero ter ajudado... Qualquer problema, avise! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.