O QUE FAZER PARA SABER QUAL A QUANTIDADE DE LINHAS

MARCOS 17/09/2014 21:14:45
#441305
Bom dia!
Pessoal,eu utilizo o método abaixo para pesquisar algo na BD.
Funciona muito bem.Mas,tenho um problema que é o seguinte:


Public Function PesquisarUsuario(ByVal InstSql As String) As DataTable

Try

Select Case Conectar()

Case Is = True

[ô]Criar objeto
Dt = New DataTable

[ô]Criar DataAdapter
Ada = New OleDbDataAdapter(Inst_Sql, Con)

[ô]Trasfere dados para DataTable
Ada.Fill(Dt)

[ô]Returna valor
Select Case Dt.Rows.Count
Case Is > 0

[ô]Retorna valor
Return Dt

Case Else

[ô]Returna valor
Return Nothing

End Select


Case Else


[ô]Returna valor
Return Nothing


End Select


Catch ex As Exception

[ô]Returna valor
Return Nothing


Finally

[ô]Desconectar
Desconectar()

[ô]Descarta objetos da memória
Dt.Dispose()
Ada.Dispose()

End Try

End Function


Para conseguir verificar o resultado da função,eu uso o seguinte código:



Dt1 = PesquisarUsuario(InstrucaoSql)

Select case Dt1.Rows.Count
Case is > 0


Case else
End select


O problema é que quando a consulta,não retorna nenhuma linha,o VB.NET emite uma mensagem de erro quando eu
tento verificar se a quantidade de linhas é maior que zero.Existe algum motivo para isto?????
LENDAURBANA 18/09/2014 10:25:26
#441318
Provavelmente e porque Dt esta ficando null , faz um teste if(dt <> null) ante de seu case.
GUIMORAES 18/09/2014 14:14:45
#441325
Resposta escolhida
é exatamente como o LENDAURBANA disse, você está retornando nada (nothing), e isto faz ocasionar um erro, pois o objeto não possui linhas para verificar, na verdade ele não possui nada!
MARCOS 23/09/2014 11:50:22
#441450
Bom dia!
A sugestão dos colegas,faz sentido.
O problema é que o VB.NET não aceita a sintaxe:

if(dt <> null)

Algum colega,sabe como lidar com objetos DataTable, que não retornam nenhuma linha, quando se faz uma pesquisa???
GUIMORAES 23/09/2014 16:52:49
#441463
ha várias formas de fazer isto, mais vou passar a mais simples abaixo.

If dt IsNot Nothing Then
If dt.Rows.Count > 0 Then
....
End If
End If
Tópico encerrado , respostas não são mais permitidas