Ir para o conteúdo
wizzuu

Problema na base de dados

Mensagens Recomendadas

wizzuu    1
wizzuu

Bom dia.

Estou neste momento a tentar concluir um programa no âmbito da área de restauração, mas estou a ter um problema, que passo a citar:

Eu tenho um formulário chamado "Pedidos", que contém 2 Listviews, um botão que atribui a uma mesa à escolha do utilizador, e uma DataGridView ligada a um DataSet, que tem as colunas: Mesa, Nome, Preço, Quantidade (o resto não interessa muito para o problema)

Neste formulário será possível escolher o que quisermos de produtos, e à medida que escolhemos, esses respectivos vão sendo adicionados à Listview1 (que tem Gridlines = true, sendo as colunas: Nome, Preço, Quantidade).

Depois tenho lá outro botão com uma imagem de uma seta, que passa os dados da Listview1 para a Listview2 (que tem as mesmas colunas). Até aqui tudo bem.

Agora então no botão de atribuir a uma mesa, é que estou a ter um problema. Este botão supostamente passa os dados da Listview2 para a DataGridView (que se encontra no mesmo formulário), através do preenchimento de uma InputBox.

Imaginando que escolho dois produtos, Café e Ice Tea.

Estes dois ficariam, na DataGrid da seguinte forma:

Mesa | Nome | Preço | Quantidade

1 Café 0,70 € x (depende das vezes que clicar no item na escolha)

1 Ice Tea 1,00 € y (depende das vezes que clicar no item na escolha)

O código não dá erro nenhum, a questão é mesmo depois de fazer o Fill à DataGrid, fica sem valor nenhum à mesma. Não tem linha nenhuma.

Mas se eu voltar a formulário anterior, e voltar a entrar neste, já aparece um valor, mas apenas um, que é o último inserido.

apartir daí não consigo fazer mais nenhuma alteração na DataGridView.

Passando a código:

 ' Atribuir fatura a uma mesa

Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles atribuir_mesa.Click
mensagem = "Deseja atribuir esta fatura a uma mesa?"
titulo = Me.Text
botoes = MessageBoxButtons.YesNo
icone = MessageBoxIcon.Question
resposta = MessageBox.Show(mensagem, titulo, botoes, icone)
If resposta = Windows.Forms.DialogResult.Yes Then
Dim texto As String = ""
texto = InputBox("Escolha o número da mesa a atribuir (de 1 a 8), ou escreva Aleatoriamente para a mesa ser definida.")
' filtrar a resposta
Select Case texto
Case "1"
lbl_nrmesa.Text = "1"
gestao.mesa1_estado.Image = Image.FromFile("F:\Projects\Imagens PAP\Pedidos\Mesas\mesa_ocupada.jpg")
Dim instrucao As String
For Each item As ListViewItem In ListView2.Items
Dim Coluna1 As String = lbl_nrmesa.Text
Dim Coluna2 As String = item.SubItems(0).Text
Dim Coluna3 As String = item.SubItems(1).Text
Dim Coluna4 As String = item.SubItems(2).Text
instrucao = "INSERT INTO Pedidos(Mesa,Nome,Preco,Quantidade) VALUES('" & Coluna1 & "', '" & Coluna2 & "', '" & Coluna3 & "', '" & Coluna4 & "')"
Me.PedidosTableAdapter.Adapter.SelectCommand.CommandText = instrucao
Me.PedidosTableAdapter.Update(Me.StocksDataSet.Pedidos)
Next
Me.PedidosTableAdapter.Fill(Me.StocksDataSet.Pedidos)
ListView1.Items.Clear()
ListView2.Items.Clear()
Case "2"
gestao.mesa2_estado.Image = Image.FromFile("F:\Projects\Imagens PAP\Pedidos\Mesas\mesa_ocupada.jpg")

Case "3"
gestao.mesa3_estado.Image = Image.FromFile("F:\Projects\Imagens PAP\Pedidos\Mesas\mesa_ocupada.jpg")

Case "4"
gestao.mesa4_estado.Image = Image.FromFile("F:\Projects\Imagens PAP\Pedidos\Mesas\mesa_ocupada.jpg")
Case "5"
gestao.mesa5_estado.Image = Image.FromFile("F:\Projects\Imagens PAP\Pedidos\Mesas\mesa_ocupada.jpg")
Case "6"
gestao.mesa6_estado.Image = Image.FromFile("F:\Projects\Imagens PAP\Pedidos\Mesas\mesa_ocupada.jpg")
Case "7"
gestao.mesa7_estado.Image = Image.FromFile("F:\Projects\Imagens PAP\Pedidos\Mesas\mesa_ocupada.jpg")
Case "8"
gestao.mesa8_estado.Image = Image.FromFile("F:\Projects\Imagens PAP\Pedidos\Mesas\mesa_ocupada.jpg")
Case "Aleatoriamente"

End Select
End If
End Sub

Este é o código do botão para atribuir à mesa, e que dá os dados à DataGridView, e também onde deve estar o erro, com certeza.

Espero que me possam ajudar, que estou a tentar resolver isto há um tempo..

Obrigado.

Cumprimentos.

Editado por ribeiro55

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
wizzuu    1
wizzuu

Já resolvi o problema, agora é outro...

Tenho 2 formulários.

1º- Tem uma DataGridView ligada a um dataset, com as colunas "Mesa", "Nome", "Preço" e "Quantidade"

2º- Tem uma DataGridView normal, sem ligação a um banco de dados, apenas com as colunas "Nome", "Preço" e "Quantidade".

Eu quero passar dados da DataGrid do formulário 1, para a do formulário 2.

O código ao clicar num botão que representa uma mesa específica(por exemplo a mesa 1) irá retirar apenas os campos "Nome", "Preço" e "Quantidade" das linhas que contiverem o campo Mesa = "1". Este é o meu objectivo. No entanto, depois de efectuar a transição, a datagrid do formulário 2 continua vazia...

deixo aqui 2 tipos de códigos que tentei para o botão de passar os dados:

Código 1:

 Dim texto As String = Nothing
 Dim i As Integer = 0
 For Each linha As DataGridViewRow In pedidos_mesas.PedidosDataGridView.Rows
	 'percorre as células da linha
	 For Each celula As DataGridViewCell In pedidos_mesas.PedidosDataGridView.Rows(linha.Index).Cells
		 'se a coluna é a coluna 1 (Nome) então verifica o criterio
		 If celula.ColumnIndex = 0 Then
			 texto = celula.Value
			 'se o texto informado estiver contido na célula então seleciona toda linha
			 If texto.ToString = "2" Then
				 'seleciona a linha
				 Dim coluna1 As String = pedidos_mesas.PedidosDataGridView.Rows(i).Cells(1).Value
				 Dim coluna2 As String = pedidos_mesas.PedidosDataGridView.Rows(i).Cells(2).Value
				 Dim coluna3 As String = pedidos_mesas.PedidosDataGridView.Rows(i).Cells(3).Value
				 dtg_fatura.Rows.Add(coluna1, coluna2, coluna3)
			 End If
		 End If
	 Next
	 i += 1
 Next

Código 2:

Private Sub mesa2_estado_Click(sender As Object, e As EventArgs) Handles mesa2_estado.Click
 label_nrmesa.Text = "Mesa nº 2"
 For i = 0 To pedidos_mesas.PedidosDataGridView.Rows.Count - 1
	 If pedidos_mesas.PedidosDataGridView.Rows(i).Cells(0).Value = "2" Then
		 Dim coluna1 As String = pedidos_mesas.PedidosDataGridView.Rows(i).Cells(1).Value
		 Dim coluna2 As String = pedidos_mesas.PedidosDataGridView.Rows(i).Cells(2).Value
		 Dim coluna3 As String = pedidos_mesas.PedidosDataGridView.Rows(i).Cells(3).Value
		 dtg_fatura.Rows.Add(coluna1, coluna2, coluna3)
	 End If
 Next
End Sub

Nenhum resultou. Como hei-de fazer?

Obrigado,

Abraço.

Editado por apocsantos
geshi

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Cerzedelo    14
Cerzedelo

O nome pedidos_mesa e o nome do form?

Quando se opera em diferentes forms deve indicar o nome do form.

Ex. : form2.datagridview1.Rows(1).Cells(1).Value=form1.datagridview1.Rows(1).Cells(1).Value

Partilhar esta mensagem


Link 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.