Você está offline; aguardando reconexão

Não há nenhuma propriedade RecordCount quando yo usar a classe OleDbDataReader ou a classe SqlDataReader no Visual Basic .NET

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 308050
Para obter uma Microsoft Visual translation from VPE for Csharp .NET versão deste artigo, consulte 308352.

Este artigo se refere ao seguinte namespace Microsoft .NET Framework Class Library:
  • System.Data.SqlClient
Sintomas
Ao usar a classe SqlDataReader ou OleDbDataReader , há nenhuma propriedade RecordCount saber quantos registros estão sendo obtidos.
Causa
O objeto DataReader (ou até mesmo a fonte de dados back-end) geralmente não sabe quantos registros estão sendo obtidos até que uma última seja enviada ao cliente. Até mesmo um Recordset de ActiveX Data Objects (ADO) retorna-1 para RecordCount ao recuperar dados usando um cursor forward-only. DataReader apresenta comportamento semelhante porque ele usa um cursor forward-only para recuperar linhas e colunas.
Resolução
Você pode contornar esse problema das seguintes maneiras:
  • Conte os registros enquanto você percorrer o leitor.
  • Execute uma consulta SELECT COUNT(*) primeiro (embora isso possa ser desatualizado quando que terminar de ler dados).
Situação
Esse comportamento é por design.
Mais Informações

Passos para reproduzir o problema

  1. Abra o Visual Studio .NET.
  2. Crie um novo Windows Application no Visual Basic NET..
  3. Certifique-se que seu projeto contém uma referência ao namespace System.Data .
  4. Coloque um botão de comando no Form1 e altere a propriedade Name para btnTest .
  5. Usar a declaração Imports os namespaces System.Data e sistema de modo que não é necessário para qualificar declarações esses namespaces posteriormente no seu código.
    Imports SystemImports System.DataImports System.Data.SqlClient					
  6. Cole o código a seguir na janela de código após a região "Windows Form Designer gerou código":
    Private Sub btnTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTest.Click    Dim myConnString As String = _        "User ID=sa;password=sa;Initial Catalog=pubs;Data Source=mySQLServer"    Dim mySelectQuery As String = "SELECT * FROM Authors"    Dim myConnection As New SqlConnection(myConnString)    Dim myCommand As New SqlCommand(mySelectQuery, myConnection)    myConnection.Open()    Dim myReader As SqlDataReader    myReader = myCommand.ExecuteReader()    Dim RecordCount As Integer    Try        While myReader.Read()            RecordCount = RecordCount + 1        End While        If RecordCount = 0 then            MessageBox.Show("No data returned")        Else            MessageBox.Show("Number of Records returned: " & RecordCount)        End If    Catch ex As Exception        MessageBox.Show(ex.ToString())    Finally        myReader.Close()        myConnection.Close()    End TryEnd Sub					
  7. Modificar a seqüência de conexão (myConnString) conforme apropriado para seu ambiente.
  8. Salve seu projeto. No menu Debug , clique em Iniciar e executar o projeto.
  9. Clique no botão e você pode ver a contagem de registro.
Referências
Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
194973PROBLEMA: ADO: Recordcount pode retornar -1

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 308050 - Última Revisão: 03/09/2006 04:55:27 - Revisão: 1.3

Microsoft ADO.NET (included with the .NET Framework), Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft ADO.NET 2.0

  • kbmt kbnofix kbprb kbsqlclient kbsystemdata KB308050 KbMtpt
Comentários
d"; document.getElementsByTagName("head")[0].appendChild(m);