LISTVIEW - FILTRAR DADO ESPECIFICO PARA VISUALIZA?

SANROMAN 27/03/2014 11:52:00
#436585
Olá Galera

Com a ajuda do OMAR (muito obrigado) consegui que ao digitar em um textbox o nome de um cliente carregasse a listview. O Código é o seguinte:

Private Sub historicoVenda()

Dim strCliente As String = txtCodCliente.Text

Dim sqlCon As New SqlConnection(strCmd)
Dim strSql As String = [Ô]Select * from TB_FinalizaVenda where CodCliente = [ô][Ô] & strCliente & [Ô][ô][Ô]
Dim sqlCmd As New SqlCommand(strSql, sqlCon)

Dim daClientes As New SqlDataAdapter(sqlCmd)
Dim ds = New DataSet

sqlCmd.Connection.Open()

daClientes.SelectCommand = sqlCmd

daClientes.Fill(ds, [Ô]TB_FinalizaVenda[Ô])

listHistoricoVendas.Items.Clear()

Dim i As Integer

For i = 0 To ds.Tables([Ô]TB_FinalizaVenda[Ô]).Rows.Count - 1
listHistoricoVendas.Items.Add(ds.Tables([Ô]TB_FinalizaVenda[Ô]).Rows(i)([Ô]DataVenda[Ô]))
listHistoricoVendas.Items(i).SubItems.Add(ds.Tables([Ô]TB_FinalizaVenda[Ô]).Rows(i)([Ô]FormaPagamento[Ô]))
listHistoricoVendas.Items(i).SubItems.Add(ds.Tables([Ô]TB_FinalizaVenda[Ô]).Rows(i)([Ô]Parcela[Ô]))
listHistoricoVendas.Items(i).SubItems.Add(ds.Tables([Ô]TB_FinalizaVenda[Ô]).Rows(i)([Ô]Vencimento[Ô]))
listHistoricoVendas.Items(i).SubItems.Add(ds.Tables([Ô]TB_FinalizaVenda[Ô]).Rows(i)([Ô]ValorPago[Ô]))
Next

ds.Tables([Ô]TB_FinalizaVenda[Ô]).Clear()

End Sub

Funciona perfeitamente, mostra no listview todas as compras do cliente, mas gostaria que filtrasse só as contas a prazo do cliente, será que alguém pode me ajudar?
KILLERBEST 27/03/2014 12:23:54
#436592
Metes no select. Em vez de meteres * metes o nome da coluna que queres. Tipo SELECT [Ô]a coluna que queres[Ô] FROM [Ô]nome da tabela[Ô] WHERE [Ô]a codição que desejas[Ô]
SANROMAN 27/03/2014 16:15:57
#436596
Olá KILLERBEST

Tem lógica, mas simplesmente trocar o * pela coluna que desejo não vai funcionar.

Tenho que preencher a list com mais dados por isso devo ter toda a tabela em memória, se usar o coluna específica o sistema não vai reconhecer os demais campos da tabela.

NILSONTRES 27/03/2014 16:46:34
#436597
SANROMAN,
Nesse caso, como disse o amigo acima, selecione campo por campo.
exemplo: Select campo1,campo2, campo3 from tabela where campo1=condição.
Ou continue selecionando toda a tabela com *From, o caso ai é especificar os campos e as condições, where campo1=isso and campo2 =aquilo.

Aconselho encontrar apostilas sobre instruções Sql e se familizar com elas, pois em um sistema vc vai precisar de muitas.
KILLERBEST 28/03/2014 06:52:30
#436617
Resposta escolhida
NILSONTRES tem razão SANROMAN, se quer visualizar mais campos, basta acrescentar mais a seguir ao select

Espero ter ajudado
OMAR2011 28/03/2014 09:32:41
#436632
O mais recomendado para preencher um listview é forma do select.
Select * From B_FinalizaVenda não é boa forma.
Select DataVenda,FormaPagemnto,Parcela,Vencimento,ValorPago From B_FinalizaVenda ....... .
é isto que o Nilsontres está te mostrando.
Vamos para a consulta.Você tem um campo FORMAPAGAMENTO.
Acredito que neste campo esteja gravado AVISTA OU PARCELADO.
Consulta.
[Ô]Select DataVenda,FormaPagemnto,Parcela,Vencimento,ValorPago From B_FinalizaVenda Where FormaPagamento= [ô][Ô] & txtForpag.text & [Ô][ô] and CodCliente=[Ô] & txtcodcliente.text & [Ô][Ô]
é isto que estão tentando de mostra.
Valeu.
SANROMAN 28/03/2014 12:13:26
#436646
Olá OMAR2011

Segui a orientação dos amigos KILLERBEST e NILSONTRES e o código ficou assim:

Private Sub historicoVenda()

Dim strCliente As String = txtCodCliente.Text

Dim sqlCon As New SqlConnection(strCmd)
Dim strSql As String = [Ô]Select DataVenda, NomeCliente, FormaPagamento, Parcela, Vencimento, ValorPago from TB_FinalizaVenda where FormaPagamento = [ô]À Prazo[ô] and CodCliente = [ô][Ô] & strCliente & [Ô][ô][Ô]
Dim sqlCmd As New SqlCommand(strSql, sqlCon)

Dim daClientes As New SqlDataAdapter(sqlCmd)
Dim ds = New DataSet

sqlCmd.Connection.Open()

daClientes.SelectCommand = sqlCmd

daClientes.Fill(ds, [Ô]TB_FinalizaVenda[Ô])

listHistoricoVendas.Items.Clear()

Dim i As Integer

For i = 0 To ds.Tables([Ô]TB_FinalizaVenda[Ô]).Rows.Count - 1
listHistoricoVendas.Items.Add(ds.Tables([Ô]TB_FinalizaVenda[Ô]).Rows(i)([Ô]DataVenda[Ô]))
listHistoricoVendas.Items(i).SubItems.Add(ds.Tables([Ô]TB_FinalizaVenda[Ô]).Rows(i)([Ô]NomeCliente[Ô]))
listHistoricoVendas.Items(i).SubItems.Add(ds.Tables([Ô]TB_FinalizaVenda[Ô]).Rows(i)([Ô]Vencimento[Ô]))
listHistoricoVendas.Items(i).SubItems.Add(ds.Tables([Ô]TB_FinalizaVenda[Ô]).Rows(i)([Ô]FormaPagamento[Ô]))
listHistoricoVendas.Items(i).SubItems.Add(ds.Tables([Ô]TB_FinalizaVenda[Ô]).Rows(i)([Ô]Parcela[Ô]))
listHistoricoVendas.Items(i).SubItems.Add(ds.Tables([Ô]TB_FinalizaVenda[Ô]).Rows(i)([Ô]ValorPago[Ô]))
Next

ds.Tables([Ô]TB_FinalizaVenda[Ô]).Clear()

End Sub

Está funcionando perfeitamente, muito obrigado a todos.
Tópico encerrado , respostas não são mais permitidas