LEITURA DE DATA NULA
Tenho um listview e estou tentando carregar um valor data vindo da tabela creditos em bd acess...
Já fiz isso antes porem não me recordo do fiz.... isso foi bom!!! kkkkk
Preciso testar o campo data na leitura da tabela para poder fazer o tratamento necessário ao carregar.
Meu código
Call criacabecalho(3) [ô] monta o listview
If PContabil.State = ConnectionState.Closed Then PContabil.Close()
PContabil.Open()
Dim cmdcc As OleDbCommand = New OleDbCommand(sql, PContabil)
Dim leitorcc As OleDbDataReader = cmdcc.ExecuteReader()
listcc.View = View.Details
Dim wcp364, wcp365 As Date
Do While leitorcc.Read()
Dim itemcc As New ListViewItem()
itemcc.Text = leitorcc(0)
tbcp364.Text = (leitorcc.Item([Ô]CP364[Ô])) [ô] Valor lançado
tbcp365.Text = (leitorcc.Item([Ô]CP365[Ô])) [ô] Valor lançado
wcp364 = CDate(tbcp364.Text)
wcp365 = CDate(tbcp365.Text)
tbcp367.Text = (leitorcc.Item([Ô]CP367[Ô])) [ô] Valor lançado
tbcp367.Text = Convert.ToDecimal(tbcp367.Text).ToString([Ô]###,###,##0.00[Ô])
[ô] distribui os itens na tabela conforme as colunas delimitadas
itemcc = listcc.Items.Add(leitorcc([Ô]ID[Ô]).ToString) [ô]
itemcc.SubItems.Add(leitorcc([Ô]CP361[Ô]).ToString) [ô]
itemcc.SubItems.Add(leitorcc([Ô]CP362[Ô]).ToString) [ô]
itemcc.SubItems.Add(wcp364)
itemcc.SubItems.Add(wcp365)
itemcc.SubItems.Add(tbcp366.Text)
itemcc.SubItems.Add(tbcp367.Text)
itemcc.SubItems.Add(leitorcc([Ô]CP369[Ô]).ToString) [ô]
Loop
PContabil.Close() [ô] fecha a conexação com o banco de dados
Call corList(3) [ô] cor das linhas do grid
O campo data é o tbcp365.text, onde tento carregar a data, mas se na tabela está vazio dá erro...
Testa ai:
Citação:Call criacabecalho(3) [ô] monta o listview
If PContabil.State = ConnectionState.Closed Then PContabil.Close()
PContabil.Open()
Dim cmdcc As OleDbCommand = New OleDbCommand(sql, PContabil)
Dim leitorcc As OleDbDataReader = cmdcc.ExecuteReader()
listcc.View = View.Details
Dim wcp364, wcp365 As Date
Do While leitorcc.Read()
Dim itemcc As New ListViewItem()
itemcc.Text = leitorcc(0)
if leitorcc.item([Ô]CP364[Ô]) = [Ô][Ô] then
tbcp364.Text = (leitorcc.Item([Ô]CP364[Ô])) [ô] Valor lançado
else
tbcp364.Text = [Ô][Ô]
endif
if leitorcc.item([Ô]CP365[Ô]) = [Ô][Ô] then
tbcp365.Text = (leitorcc.Item([Ô]CP365[Ô])) [ô] Valor lançado
else
tbcp365.Text = [Ô][Ô]
endif
wcp364 = CDate(tbcp364.Text)
wcp365 = CDate(tbcp365.Text)
tbcp367.Text = (leitorcc.Item([Ô]CP367[Ô])) [ô] Valor lançado
tbcp367.Text = Convert.ToDecimal(tbcp367.Text).ToString([Ô]###,###,##0.00[Ô])
[ô] distribui os itens na tabela conforme as colunas delimitadas
itemcc = listcc.Items.Add(leitorcc([Ô]ID[Ô]).ToString) [ô]
itemcc.SubItems.Add(leitorcc([Ô]CP361[Ô]).ToString) [ô]
itemcc.SubItems.Add(leitorcc([Ô]CP362[Ô]).ToString) [ô]
itemcc.SubItems.Add(wcp364)
itemcc.SubItems.Add(wcp365)
itemcc.SubItems.Add(tbcp366.Text)
itemcc.SubItems.Add(tbcp367.Text)
itemcc.SubItems.Add(leitorcc([Ô]CP369[Ô]).ToString) [ô]
Loop
PContabil.Close() [ô] fecha a conexação com o banco de dados
Call corList(3) [ô] cor das linhas do grid
Na verdade o campo que estou capturando da tabela é do tipo data/time no acess... tenho alguns campos CP364 que não estão preenchidos porque o titulo ainda não foi pago e será preenchido somente após o pagamento.
Tentei isso mas também não dá certo:
itemcc.SubItems.Add(leitorcc(CDate([Ô]CP364[Ô])).ToString) [ô]
dá o seguinte erro:
Conversion from string [Ô]CP364[Ô] to type [ô]Date[ô] is not valid. [Ô]Data em branco[Ô]
Preciso verificar se a o campo na tabela é nulo ou não (se está preenchido ou não)
Valeu
Dim idxCP364 as Integer = leitorcc.GetOrdinal([Ô]CP364[Ô])
If Not leitorcc.IsDBNull( idxCP364 ) Then
itemcc.SubItems.Add(leitorcc.GetDateTime(idxCP364).ToString([Ô]dd/MM/yyyy[Ô]))
End If
Fiz só uma alteração fazendo a leitura direto do BD e deu certo!!
Muito obrigado pela ajuda!!!!