Vamos dar uma rápida olhada em dados OLEDB. Na verdade, todas (SQL, OLEDB e ODBC) funcionam exatamente da mesma maneira. Você vai usar OLEDB com um banco de dados Access 2000. 

 Como você já sabe, o primeiro passo para trabalhar com o ADO.NET é adicionar uma nova conexão usando o Server Explorer. Para efeitos de consistência, eu usei o Microsoft Access 2000 para estes exemplo. Sinta-se livre para utilizar qualquer fonte de dados que tenha um provedor OLEDB disponível em sua máquina. 

 Na caixa de diálogo Data Link Properties , escolha o Microsoft Jet 4.0 OLD DB (ver figura 4-35).

Figura-4.35.gif

Figura 4-35.  Escolhendo o driver OLE DB para acesso 

 Na aba Connection digite C: \ Northwind.mdb, como você pode ver na figura 4-36.

Figura-4.36.gif

Figura 4-36. Escolhendo o banco de dados em Server Explorer 

 Adicionando um adaptador OleDbData 

 Trabalhando com qualquer OleDbDataAdapter ou um ODBCDataAdapter é o mesmo que trabalhar com o SqlDataAdapter. Você pode usar o Server Explorer ou o Data Adapter Configuration Wizard para criar um adaptador de dados OLEDB. Neste exemplo, vou usar o Assistente de Configuração do Adaptador de Dados.   

 Na segunda página do assistente, escolha a sua conexão de dados, você pode criar uma nova conexão ou selecionar uma conexão existente (ver figura 4-37).

Figura-4.37.gif

Figura 4-37. Configurando Data adapter  para acesso 

 Na próxima página, selecione a opção Use SQL statements e clique no botão Next (ver figura 4-38).

Figura-4.38.gif

Figura 4-38. Escolha o tipo de consulta no Assistente de Configuração 

 Isso o levará à página Adicionar tabela. Como você pode ver na figura 4-39, estou escolhendo a tabela Ordes. Em seguida, clique no botão Adicionar.

Figura-4.39.gif

Adicionando uma tabela para a consulta de dados 

 Após clicar em Add, o Query Builder traz combo com as colunas da tabela, como mostrado na figura 4-40.

Figura-4.40.gif

Escolha a coluna para a consulta de dados  


 Eu escolhi OrderID, OrderDate, ShipAddress, ShipCity e DataDeEntrega para a minha consulta. Isso cria a consulta mostrada no terceiro painel do Construtor de consultas. Clicar em OK para exibir a consulta final, como mostrado na figura 4-41.

Figura-4.41.gif

Figura 4-41. Gerar as instruções SQL 


 Clicando no botão de opções avançadas abrir o Advanced SQL Generation, como mostrado na figura 4-42.

Figura-4.42.gif

As opções avançadas do assistente de configuração  

 Na caixa de diálogo não escolha Gerar INSERT, UPDATE ou DELETE, desativando a primeira opção.Isso é útil se você está pensando em modo somente leitura do banco de dados e não quer que todo este código estranhos sejam gerados. 

 A segunda opção. Verificação de simultaneidade otimista para ver se a linha que está sendo atualizado no banco de dados já foi alterado por outra pessoa durante o processo de atualização.O provedor de dados consegue isso usando uma cláusula WHERE na instrução UPDATE que verifica os dados originais no conjunto de dados.Se não encontrar os dados originais, não vai atualizar a fonte de dados. Um provedor de dados mantém dois conjuntos de parâmetros: um com os dados originais e outra com os dados atuais. Os parâmetros de dados atual trabalha na instrução UPDATE (isto é os dados que você está tentando atualizar no banco de dados), e os parâmetros de dados originais de trabalho na cláusula WHERE (estes parâmetros so verifica se o banco de dados não foi atualizados).Se você desativar a opção Usar concorrência otimista, a cláusula WHERE tera somente a chave primária e não há dados de parâmetro inicial Provavelmente, você pode desabilitar esta opção para acelerar as coisas se o pedido é apenas para um único usuário. Abaixo estão as diferenças entre as instruções Select gerado com simultaneidade otimista . 

 Esse é o código de simultaneidade otimista desabilitado:

oleDbUpdateCommand1.CommandText = "UPDATE Orders SET OrderDate =?, " + "RequiredDate = ?, ShipAddress = ?, ShipCity = ? WHERE (OrderID = ? )" + "AND (OrderDate = ? OR ? IS NULL AND OrderDate IS NULL) AND " + "(RequiredDate = ? OR ? IS NULL AND RequiredDate IS NULL) AND " + " (ShipAddress = ? OR ? IS NULL AND ShipAddress IS NULL) AND " + "(ShipCity = ? OR ? IS NULL AND ShipCity IS NULL)" oleDbUpdateCommand1.CommandText = "UPDATE Orders SET OrderDate =?," + "DataDeEntrega =?, ShipAddress =?, ShipCity =? WHERE (OrderID =?)" + "AND (OrderDate =? OR? IS NULL AND OrderDate IS NULL) AND "+" (DataDeEntrega =? OR? IS NULL AND DataDeEntrega IS NULL) AND "+" (ShipAddress =? OR? IS NULL AND ShipAddress IS NULL) AND "+" (ShipCity =? OR? IS NULL AND ShipCity IS NULL) " 

Esse é o código de simultaneidade otimista 

Me .oleDbUpdateCommand1.CommandText = "UPDATE Orders SET OrderID =?, " + "OrderDate = ?, RequiredDate = ?, ShipAddress = ?, ShipCity = ?" + "WHERE (orderID = ?) AND (OrderDate = ?) AND (RequiredDate = ?) " + "AND (ShipAddress =?) AND (ShipCity = ?)" "SELECT OrderID, OrderDate, RequiredDate, ShipAddress, " + "ShipCity FROM Orders WHERE (OrderID = ?)" Me. OleDbUpdateCommand1.CommandText = "UPDATE Orders SET OrderID =?" + "OrderDate =?, DataDeEntrega =?, ShipAddress =?, ShipCity =?" + "WHERE (orderID =?) AND (OrderDate =?) AND (DataDeEntrega =?) "+" AND (ShipAddress =?) AND (ShipCity =?) "SELECT OrderID, OrderDate, DataDeEntrega, ShipAddress," + "Orders ShipCity WHERE (OrderID =?)" 

 Você também pode perceber a instrução SQL Select tacked para o fim da instrução UPDATE SQL. A opção de atualização de dados te adiciona esta afirmação.Desativar essa opção irá remover a instrução SELECT. . Você deve marcar esta opção para inserir e atualizar. 

 Clicar em Avançar para abrir a tela de resultados. Como você pode ver na figura 4-43, o Data Adapter Configuration Wizard fez um pouco do trabalho!  É gerado todos os comandos todo o mapeamento embora não indicou todos os parâmetros.

Figura-4.43.gif

Figura 4-43. Ver página de resultados do assistente de configuração  

 Se você examinar o designer do formulário, você verá que o assistente adicionou dois componentes ao formulário: oleDbConnection1 e oleDbDataAdapter1.O código-fonte gerado pelo assistente é semelhante ao código-fonte gerado para o SqlDataAdapter. Você vai notar diferenças, embora, no ConnectionString e os parâmetros se estivesse passando pelo mesmo processo com um SqlDataAdapter.O OdbcDataAdapter também irá gerar um código semelhante. 

Preencher DataSet e o DataGrid 

 Agora, para testar se tudo correu bem, crie um aplicativo do Windows Forms e adicione um OleDataAdapter utilizando os passos anteriores.Em seguida, adicione um controle DataGrid para o formulário, assim como todos os códigos listados no evento Form_Load r. 

 Adicionando o código no formulário _ evento Load

Private Sub Form1_Load( ByVal sender As Object , ByVal Args As System.Event) Form1_Load (sender Object, ByVal args System.Event)
Dim ds As DataSet = New DataSet() Ds DataSet = New DataSet ()
' Populate Dataset by calling Fill method "Preencher DataSet chamando o método Fill
oleDbDataAdapter1.Fill(ds) oleDbDataAdapter1.Fill (DS)
' Set DataGrid's Data source property data Grid1. 'Set Data DataGrid de dados propriedade de origem Grid1. Data source = ds.DefaultViewManager; Fonte ds.DefaultViewManager =;
dataGrid1.DataSource = ds.DefaultViewManager ds.DefaultViewManager dataGrid1.DataSource =
End Sub 

Como você pode ver, você cria um objeto DataSet e chama o método OleDbDataAdaptador para preencher os dados. Depois que você usar a propriedade do controle Data Grid DataSource e defini-lo como DataSet'sDefaultViewManager. 

 Agora criar e executar o projeto. Sua saída deve ser semelhante a Figura 4-44.

Figura-4.44.gif

Figura 4-44. Preencher uma grade de dados