ASP.NET e ADO.NET 1 ADO.NET ADO.NET é um conjunto de classes que disponibiliza, ao programador, serviços de acesso a Fontes de Dados. ASP.NET disponibiliza server controls muito adequados à visualização de dados. O DataGrid é um componente muito utilizado associado à visualização e manipulação de informação de bases de dados. Permite visualizar essa informação numa tabela. É um componente com muitas potencialidades. 2 .Net Data Providers e os objectos fundamentais Os Data Providers (DP) disponibilizam um conjunto de classes para ligar a bases de dados, executar comandos e obter resultados. Esses resultados são tratados directamente ou colocados num DataSet para serem expostos de modo diverso. ADO.NET tem DP para: SQL Server (as classes estão em Os quatro objectos fundamentais de um DP : System.Data.SqlClient), OLE DB (as classes estão em System.Data.OleDb), OBDC (as classes estão em System.Data.Odbc), Oracle ... Connection – estabelecer ligação com uma fonte de dados Command – executar um comando sobre a base de dados para obter e modificar informação DataReader – ler sequencialmente uma fonte de dados. (Só Leitura) DataAdapter – preencher um DataSet e permite actualizações da base de dados 3 Query a numa Base de Dados OLE DB Criar um objecto OleDbConnection e passar-lhe a string de conexão String strPath=Server.MapPath("loja.mdb"); String strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strPath; System.Data.OleDb.OleDbConnection conn= new System.Data.OleDb.OleDbConnection(strConn); Abrir a ligação à Base de dados conn.Open(); Criar um objecto OleDbCommand atribuir-lhe o objecto ligação aberto e o comando sql System.Data.OleDb.OleDbCommand cmd= new System.Data.OleDb.OleDbCommand(); String strSql="Select * from categorias"; cmd.Connection=conn; cmd.CommandText=strSql; Executar o comando System.Data.OleDb.OleDbDataReader dtReader=cmd. ExecuteReader(); … 4 Comando É uma instância das classes OleDbCommand, SqlCommand, OdbcCommand, ou OracleCommand Contém uma referência para uma instrução SQL ou “stored procedure” Propriedades: Connection Text Command Parameters System.Data.OleDb.OleDbCommand cmd= new System.Data.OleDb.OleDbCommand(); cmd.Connection=myConnection; cmd.CommandText=strsql; Métodos ExecuteReader – Devolve registos para um DataReader, usado em Select ExecuteNonQuery – Usado em Insert, Update e Delete 5 DataReader e DataSets Em ADO.NET (não há um ResultSet como em JSP) mas há objectos como DataSets, DataReaders,... que são usados para obter a informação das bases de dados. DataSets são objectos, do tipo estruturas hierárquicas relacionais, semelhantes a uma Base de Dados em memória. 6 DataReader Permite ler de uma fonte de dados “forward-only” e “read-only” Criado através do método executeReader de um objecto Command Pode ser associado ao DataSource de Server Controls string mySelectQuery = "SELECT OrderID, CustomerID FROM Orders"; OleDbConnection myConnection = new OleDbConnection(myConnString); OleDbCommand myCommand = new OleDbCommand(mySelectQuery,myConnection); myConnection.Open(); OleDbDataReader myReader; myReader = myCommand.ExecuteReader(); DataGrid1.DataSource=myReader; DataGrid1.DataBind(); myReader.close(); Permite aceder linha a linha while (myReader.Read()) { ... } 7 DataAdapter e DataSet … conn.Open(); System.Data.OleDb.OleDbCommand cmd= new System.Data.OleDb.OleDbCommand(); String strSql="Select * from produtos where IdCat=2"; cmd.Connection=conn; cmd.CommandText=strSql; System.Data.OleDb.OleDbDataAdapter dtAdapter=new System.Data.OleDb.OleDbDataAdapter(strSql,conn); … conn.Close(); DataSet dataSet= new DataSet(); dtAdapter.Fill(dataSet); DataGrid1.DataSource=dataSet; DataGrid1.DataBind(); 8