Forum Visual Basic - JcmSoft

Forum | Novo Topico | Responder

Lucio colocou o seguinte comentário em 7/2/2012 21:46:34 :         

Assunto : Consulta linq no evento ComboBox_SelectedIndexChanged não funciona.
Mensagem : Tenho duas tabelas com as seguintes estruturas:

tbCaixa:

idCaixa-Data-idFormaPagamento-Descricao-Entrada-Saida

tbFormaPagamento:

idFormaPagamento-Descricao-Tipo
1 Cheque C
2 Pgto Forne D
3 Dinheiro C

E o seguinte código em vb.net:

Dim tipoPagamento as Char 'variável global

Private Sub carregaComboBox()
Dim formaPagamento = From f In bd.FormaPagamentos Select f
cboFormaPagamento.Items.Clear()
cboFormaPagamento.DataSource = formaPagamento.ToList
cboFormaPagamento.DisplayMember = "Descricao"
cboFormaPagamento.ValueMember = "idFormaPagamento"
End Sub

Private Sub carregaGrid()

Dim caixa = From c In bd.Caixas Select c.idCaixa, c.Data, c.idFormaPagamento, c.Descricao, c.Entrada, c.Saida
dgvCaixa.DataSource = caixa.ToList

End Sub

Private Sub btnSalvar_Click(sender As System.Object, e As System.EventArgs) Handles btnSalvar.Click
Dim caixa As New Caixa
With caixa
.Data = dtpDataLancamento.Value 'data
.idFormaPagamento = cboFormaPagamento.SelectedValue '3 (Cheque)
.Descricao = txtDescricao.Text 'descricao
If tipoPagamento = "C" Then
.Entrada = txtValor.Text 'se SelectedValue = 3 =>C
Else
.Saida = txtValor.Text 'se SelectedValue = 2 =>D
End If
End With
bd.Caixas.InsertOnSubmit(caixa)
bd.SubmitChanges()
carregaGrid()
End Sub

O trecho If Else deveria funcionar (se tipoPagamento for C, então Entrada recebe txtValor, senão Saida recebe txtValor), porém não funciona porque tipoPagamento é sempre C.
Gostaria de saber onde está o erro? Fiz esta consulta linq abaixo porém não funciona como eu gostaria.

Private Sub cboFormaPagamento_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cboFormaPagamento.SelectedIndexChanged
'consulta linq responsável em retornar o tipo de pagamento (C/D)
Dim formaPagamento = From f In bd.FormaPagamentos, c In bd.Caixas Where f.idFormaPagamento = c.idFormaPagamento Select f.idFormaPagamento, c.idFormaPagamento, f.Tipo, c.idCaixa
With formaPagamento.ToList.Item(0)
tipoPagamento = .Tipo.ToString
End With
End Sub

Consulta linq no evento ComboBox_SelectedIndexChanged não funciona. por Lucio em 7/2/2012 21:46:34

© 2000-2001 - Forum Visual Basic - Todos os direitos Reservados - (AspBox) Moderador: José Carlos Macoratti