WHILE NAO RETORNA DADOS
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á???
[ô] varre as colunas para preencher os valores...
For i As Integer = 0 To leitor.FieldCount - 1
values(i) = leitor.GetValue(i)
Next
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
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.
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!