ADO .NET é a nova tecnologia para acesso a dados da plataforma .NET estando integrada ao .NET Framework e oferecendo diversas classes que permitem realizar praticamente todas as tarefas relacionadas com o acesso e manutenção de dados.
ADO .NET oferece suporte a uma variedade de opções para desenvolvimento de soluções com acesso a dados que permitem a comunicação com qualquer fonte de dados, desde os já conhecidos gerenciadores de banco de dados relacionais (SGBD) como : SQL Server, MySQL, FireBird, Oracle, Sybase, Access, XML, arquivos textos, etc.
Os componentes considerados os pilares da ADO.NET são o DataSet e os provedores .NET que são um conjunto de componentes que incluem os objetos :
Para detalhes veja o meu mini-curso sobre ADO .NET em : ADO.NET - Uma visão geral : Objetos Connection - Macoratti.net
A classe DataRowCollection representa uma coleção de linhas em um objeto DataTable e contém os dados atuais de uma tabela onde cada DataRow existente na DataRowCollection representa uma única linha ou registro da tabela.
Podemos chamar os métodos Add e Remove para inserir e deletar objetos DataRow a partir da classe DataRowCollection; podemos também chamar o método Find para procurar por um objeto DataRow que contenha um valor específico na chave primária, e podemos ainda chamar o método Contains para procurar por dados que coincidam com caracteres ou frases;
Outro recurso existente é usar os métodos Find ou FindRows do objeto DataView para procurar por linhas de acordo com seus valores chaves de ordenação. A busca sensitiva de valores através desses métodos é determinada pela propriedade CaseSensitive do objeto DataTable correspondente. Os valores procurados precisam coincidir com os valores das chaves de ordenação completamente para que possam retornam um resultado.
De forma similar ao método Select do objeto DataTable, o método Find da coleção Rows retorna um objeto DataRow, e, neste caso, uma única linha e não um array de linhas. Este método precisa que você defina a propriedade chave primária (Primary Key) antes de usá-lo. Se você não fizer isso vai obter uma exceção.
Quando você usa uma consulta que executa uma stored procedure a ADO .NET não define a chave primária para você o que significa que você tem que fazer isso você mesmo manualmente. Vejamos um exemplo de definição de chave primária via código:
Depois de definir a chave primária, podemos usar o método Find da coleção Rows sem problemas. No exemplo a seguir define e executa o método Find contra uma coleção de linhas onde é retornado um objeto DataRow baseado na chave primária passada como argumento.
Antes de começar a definir o código do formulário vou comentar alguns detalhes que precisamos entender.
O botão Localizar Pedido permite localizar um registro na tabela e exibir no formulário. Estamos realizando a busca usando o InputBox e para isso devemos incluir uma referência no projeto a Microsoft.VisualBasic;
Inclua também um namespace para podermos acessar o banco de dados Northwind.mdf do SQL Server: System.Data.SqlClient;
Feito isso vamos definir a string de conexão com o banco de dados Northwind.mdf. No meu exemplo a string de conexão será a seguinte:
Agora vamos definir no evento Load o código que vai acessar o banco de dados Northwind e obter os dados da tabela Orders:
No evento Click do botão de comando temos o código que irá definir a chave primária e usar o método Find da coleção Rows para localizar um registro pela chave primária definida. No caso estamos usando o campo OrderId como chave primária.
Executando o projeto e clicando no botão de comando a caixa de diálogo irá surgir solicitando o número do pedido;
Após informar o número do pedido e clicar em OK o método Find irá localizar o pedido e exibir o registro no formulário conforme figura a seguir: