VB.NET
- Verificando se existem dados
Como verificar se a execução de sua consulta a fonte de dados retornou registros ?
Essa é uma operação simples de ser feita , você pode usar :
Vamos mostrar um exemplo onde o código cria e preenche um objeto DataTable e usa a propriedade Count de DataRowCollection para determinar se a consulta usada para cria a tabela retorna dados.
Na sequência um DataReader será criado ; vamos usar a propriedade HasRows e o método Read() para determinar se o comando usado para criar o DataReader retornou linhas ou não
Crie um novo projeto no VS.NET to tipo Windows Application e insira um componente TextBox com propriedade Multiline definida como True e um botão de comando.
Defina os seguintes imports no projeto:
Imports
System.Data.oledb
Imports System.text
Defina a seguinte variável no seu projeto:
Private Const TABELA_ORDER As String = "Orders"
Agora insira o seguinte código do evento Click do botão de comando:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim result As StringBuilder = New StringBuilder
Dim strConn As String
Dim sql As String
sql = "SELECT * FROM Orders"
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\teste\Northwind.mdb" Dim da As OleDBDataAdapter = New OleDBDataAdapter(sql, strConn)
Dim tbl As DataTable = New DataTable(TABELA_ORDER)
'preenche o dataadapter
Try
da.Fill(tbl)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical)
Exit Sub
End Try
Dim tabelaTemRegistros As Boolean = tbl.Rows.Count > 0 If tabelaTemRegistros Then
result.Append("DataTable(Count) " & TABELA_ORDER + " possui registros " & Environment.NewLine & Environment.NewLine)
Else
result.Append("DataTable(Count) " & TABELA_ORDER + " NÃO possui registros " & Environment.NewLine & _
Environment.NewLine)
End If
Dim conn As OleDbConnection = New OleDbConnection(strConn)
Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM ORDERS", conn)
conn.Open() Dim orderReader As OleDbDataReader = cmd.ExecuteReader result.Append("DataReader(HasRows) " & TABELA_ORDER & " possui registros = " & orderReader.HasRows.ToString _
& Environment.NewLine & Environment.NewLine)
Dim readerTemRegistros As Boolean = orderReader.Read If readerTemRegistros Then
result.Append("DataReader(Read) " & TABELA_ORDER & " possui registros " & Environment.NewLine & Environment.NewLine)
Else
result.Append("DataReader(Read) " & TABELA_ORDER & " NÃO possui registros " & Environment.NewLine & Environment.NewLine)
End If
orderReader.Close()
conn.Close()
resultado.Text = result.ToString
End Sub
|
Executando o projeto teremos:

O resultado acima exibe a utilização das propriedades Count, HasRows e do método Read() retornando valores para a tabela Orders do banco de dados Northwind.mdb.
O objeto DataTable contém um objeto DataRowCollection que contém todas os objetos DataRow em uma Tabela. A coleção DataRowCollection possui a propriedade Count que retorna o número de linhas em uma tabela. A propriedade Count para uma tabela vazia retorna o valor zero.
A propriedade HasRows de um DataReader retorna um valor Booleano indicando se o DataReader contém qualquer registro.
Outra forma é usar o método Read() para avançar no DataReader para o próximo registro. Ele retorna um valor True se o registro esta disponível ou False caso contrário. A primeira chamada ao método Read() irá indicar se qualquer registro foi retornado pelo DataReader.
Esta é a única forma de determinar se um DataReader contém qualquer registro antes da introdução do propriedade HasRows na versão 1.1 do .NET Framework
E tenho dito... Até mais ver...
![]()