WHILE NAO RETORNA DADOS

MAXGUIMEL 22/05/2013 21:00:45
#423904
Amigos, boa noite, estou com um probleminha enjoado aqui que ja encheu os pacobás.

Na rotina abaixo:

Citação:

leitor.Read()

If leitor.HasRows = True Then

While leitor.Read

If leitor.Item([Ô]FATURADO[Ô]) = [Ô]False[Ô] Then
Me.GridOS.Rows.Add(leitor.Item([Ô]Data[Ô]), leitor.Item([Ô]Cliente[Ô]), leitor.Item([Ô]Veiculo[Ô]), _
leitor.Item([Ô]Cor[Ô]), leitor.Item([Ô]Servico_Acabado[Ô]), leitor.Item([Ô]CodiCli[Ô]), leitor.Item([Ô]Codigo[Ô]))
End If

End While

End If



Simplesmente quando tem 1 registro não mostra nenhum e quando tem 3 registros mostra apenas 2, o que será???
FELLIPEASSIS 22/05/2013 21:55:06
#423905
tenta colocar dentro do while

[ô] varre as colunas para preencher os valores...
For i As Integer = 0 To leitor.FieldCount - 1
values(i) = leitor.GetValue(i)
Next
KERPLUNK 23/05/2013 08:30:05
#423919
O [Ô]Read[Ô], logo antes do primeiro If, não é necessário...
MAXGUIMEL 29/05/2013 12:24:35
#424195
FELIPEASSIS, continua na mesma,sempre menos 1 registro,ou seja o primeiro registro do banco não aparece.
FILMAN 29/05/2013 21:40:32
#424225
Resposta escolhida
Boa noite

Não sei como esta carregando esse DataReader, mas tente fazer assim

após carregar o DataReader

Dim dt As New DataTable

dt.Load(leitor)

If dt.Rows.Count > 0 then
For i As Integer = 0 To dt.Rows.Count - 1
[ô] Faça o seu processo aqui dentro
Next
End If


Se não der certo nos mostre como esta carregando DataReader
JWCELYO 29/05/2013 22:39:38
#424229
Citação:

:
Amigos, boa noite, estou com um probleminha enjoado aqui que ja encheu os pacobás.

Na rotina abaixo:

leitor.Read()

If leitor.HasRows = True Then

While leitor.Read

If leitor.Item([Ô]FATURADO[Ô]) = [Ô]False[Ô] Then
Me.GridOS.Rows.Add(leitor.Item([Ô]Data[Ô]), leitor.Item([Ô]Cliente[Ô]), leitor.Item([Ô]Veiculo[Ô]), _
leitor.Item([Ô]Cor[Ô]), leitor.Item([Ô]Servico_Acabado[Ô]), leitor.Item([Ô]CodiCli[Ô]), leitor.Item([Ô]Codigo[Ô]))
End If

End While

End If

Simplesmente quando tem 1 registro não mostra nenhum e quando tem 3 registros mostra apenas 2, o que será???




Boa noite, MAXGUIME.

O problema está no primeiro Read() remova ele.

Ou os itens que está retornando do banco de dados algum está com FATURADO = FALSE.

Abs.
MAXGUIMEL 03/06/2013 14:14:33
#424345
FILMAN, fiz umas modificações e peguei seu exemplo, agora esta filtrando direitinho, vejam como ficou:

Citação:

CloseBanco()

OpenBanco()
[ô]cria um objeto command e traz registro do banco
Dim sql As String = [Ô]SELECT * FROM ORDEM_SERVICO Where DATA >=[ô][Ô] & DATAINI & [Ô]%[ô] [Ô] & _
[Ô]AND DATA <=[ô][Ô] & DATAFIM & [Ô]%[ô] AND FATURADO Like [ô][Ô] & VER & [Ô]%[ô][Ô]

OleT = New MySqlCommand(sql, AbreBanco)

[ô]define um data adapter
AdapterT = New MySqlDataAdapter()
AdapterT.SelectCommand = OleT
TbT = New DataTable()
AdapterT.Fill(TbT)

If TbT.Rows.Count > 0 Then

VERIF = [Ô]CHEIO[Ô]

Dim OBI As Integer = 0

For i As Integer = 0 To TbT.Rows.Count - 1

Me.GridOS.Rows.Add(TbT.Rows(OBI).Item([Ô]Data[Ô]), TbT.Rows(OBI).Item([Ô]Cliente[Ô]), _
TbT.Rows(OBI).Item([Ô]Veiculo[Ô]), TbT.Rows(OBI).Item([Ô]Cor[Ô]), _
TbT.Rows(OBI).Item([Ô]Servico_Acabado[Ô]), TbT.Rows(OBI).Item([Ô]CodiCli[Ô]), _
TbT.Rows(OBI).Item([Ô]Codigo[Ô]))

OBI = OBI + 1



Next

End If



Obrigado a todos que tentaram ajudar...

Abraços!
Tópico encerrado , respostas não são mais permitidas