Notas ado1
Upcoming SlideShare
Loading in...5
×
 

Notas ado1

on

  • 382 views

 

Statistics

Views

Total Views
382
Views on SlideShare
382
Embed Views
0

Actions

Likes
0
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Notas ado1 Notas ado1 Document Transcript

  • ADO1 Visual Studio 2008 New Web Site: ADO1 em C:UtilizadorsFernando2009-2010ARQSITP6 1 – Arrastar para App_Data o ficheiro loja.mdb 2 – Add New Item … WebForm DataReaderProg.aspx - Acesso à base de dados por código – programaticamente - Uso do objecto DataReader para ler uma tabela da base de dados - Apresenta a tabela Categorias num GridView Controlos: Label: Acesso à Base de Dados por código GridView Necessário acrescentar: using System.data.OleDb; private const string CONN = @"Provider=Microsoft.Jet.OLEDB.4.0;User ID=;"; private const string DBPATH = @"Data Source=|DataDirectory|/loja.mdb"; protected void Page_Load(object sender, EventArgs e) { string strConn = CONN + DBPATH; OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); OleDbCommand cmd = new OleDbCommand(); string strSql = "Select * From Categorias"; cmd.Connection = conn; cmd.CommandText = strSql; OleDbDataReader dataReader = cmd.ExecuteReader(); GridView1.DataSource = dataReader; GridView1.DataBind(); dataReader.Close(); conn.Close(); } 3 - Add New Item … WebForm DataReaderProg2.aspx - Acesso à base de dados por código - Uso do objecto DataReader para ler uma tabela da base de dados - Apresenta a tabela Categorias num DropDownList e num RadioButtonList Controlos: DropDownList RadioButtonList
  • . . . string strSql = "Select * From Categorias"; cmd.Connection = conn; cmd.CommandText = strSql; OleDbDataReader dataReader = cmd.ExecuteReader(); RadioButtonList1.DataSource = dataReader; RadioButtonList1.DataTextField = "Nomecat"; RadioButtonList1.DataValueField = "IdCat"; RadioButtonList1.DataBind(); dataReader.Close(); dataReader = cmd.ExecuteReader(); DropDownList1.DataSource = dataReader; DropDownList1.DataTextField = "Nomecat"; DropDownList1.DataValueField = "IdCat"; DropDownList1.DataBind(); dataReader.Close(); conn.Close(); } } 4 - Master-Detail em 2 páginas Add New Item … WebForm DataReaderProg3.aspx - Acesso à base de dados por código - Uso do objecto DataReader para ler uma tabela da base de dados - Apresenta a tabela Categorias numa lista de hyperlinks colocados num objecto Panel. Cada hyperlink invoca uma página com os produtos da cada categoria. Controlos: Label: Iteracção sobre um DataReader para criação de hyperlinks Panel: Panel1 . . . string strSql = "Select * From Categorias"; cmd.Connection = conn; cmd.CommandText = strSql; OleDbDataReader dataReader = cmd.ExecuteReader(); while (dataReader.Read()) { HyperLink hyperLink = new HyperLink(); hyperLink.Text = dataReader.GetString(1); // hyperLink.Text = (string) dataReader["NomeCat"]; hyperLink.NavigateUrl = "Produtos.aspx?idCat=" + dataReader.GetInt32(0); Panel1.Controls.Add(hyperLink); Panel1.Controls.Add(new LiteralControl("<p />")); }
  • dataReader.Close(); conn.Close(); 2.ª Página: Produtos.aspx Label: Produtos da Categoria: [Label2] GridView HyperLink: Text: Voltar NavigatURL: ~/DataReaderProg3.aspx try { int idCat = int.Parse(Request.QueryString["idCat"]); string strConn = CONN + DBPATH; OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); OleDbCommand cmd = new OleDbCommand(); string strSql1 = "Select NomeCat From Categorias Where IdCat=" + idCat; cmd.Connection = conn; cmd.CommandText = strSql1; OleDbDataReader dataReader = cmd.ExecuteReader(); string nomeCat =""; if (dataReader.Read()) nomeCat = dataReader.GetString(0); dataReader.Close(); Label2.Text = nomeCat; string strSql2 = "Select * From Produtos Where IdCat=" + idCat; cmd.CommandText = strSql2; dataReader = cmd.ExecuteReader(); GridView1.DataSource = dataReader; GridView1.DataBind(); dataReader.Close(); conn.Close(); } catch (System.Exception) { Response.Redirect("DataReaderProg3.aspx"); } Master-Detail em 2 páginas Base de Dados: loja.mdb Tabelas: Categorias (IdCat, NomeCat) Produtos (IdProd, IdCat, NomeProd, Preco, Stock)
  • 5 – Master-Detail numa única página sem DAL, lista de links + GridView Add New Item … WebForm MasterDetailSemDAL.aspx - Acesso à base de dados por código - Uso do objecto DataReader para ler uma tabela da base de dados - Apresenta a tabela Categorias numa lista de hyperlinks colocados num objecto Panel. Cada hyperlink invoca a própria página com os produtos da cada categoria. Tabela 2x2 Categorias: Produtos: Painel com hyperlinks GridView 6 – Master-Detail numa única página com DAL, lista de links + GridView - Acesso à base de dados por código - Uso do objecto DataReader para ler uma tabela da base de dados - Apresenta a tabela Categorias numa lista de hyperlinks colocados num objecto Panel. Cada hyperlink invoca a própria página com os produtos da cada categoria. Add New Item … WebForm MasterDetailComDAL.aspx Add New Item … Class DAL.cs Sim, colocar no folder App_Code Tabela 2x2 Categorias: Produtos: Painel com hyperlinks GridView 7 – Master-Detail numa única página com DAL, usando DataSet e lista de links + GridView Add New Item … WebForm MasterDetailDataSetComDAL.aspx - Acesso à base de dados por código - Uso do objecto DataReader para ler uma tabela da base de dados - Apresenta a tabela Categorias num GridView, tendo cada linha um hyperlink Seleccionar. Cada hyperlink invoca a própria página com os produtos da cada categoria. 8 – Master-Detail numa única página com DAL, usando 2 GridViews Add New Item … WebForm MasterDetail2GridView.aspx - Acesso à base de dados por código - Uso do objecto DataReader para ler uma tabela da base de dados
  • - Apresenta a tabela Categorias num GridView, tendo cada linha um hyperlink Seleccionar. Cada hyperlink invoca a própria página com os produtos da cada categoria. Tabela 2x2 Categorias: Produtos: GridView GridView GridView1: EditColumns … Desseleccionar (desmarcar) Auto-generate fields (AutoGenerateColumns = false) BoundField > DataField = NomeCat Não é necessário>> BoundField > DataField = IdCat e Visible = False CommandField (Select) Select: Button Type = Link ShowSelectButton = True Em Properties: DataKeyNames = IdCat Duplo clique no hyperlink Select abre o método GridView1_SelectedIndexChanged(…, …) Têm de ser especificadas chaves de dados na GridView 'GridView1' antes de ser possível obter as chaves de dados seleccionadas. Utilize a propriedade DataKeyNames para especificar chaves de dados. 9 – Master-Detail numa única página com DAL, usando 2 GridViews, com criação de uma nova coluna no DataSet Add New Item … WebForm MasterDetail2GridViewCriaColuna.aspx - Acesso à base de dados por código - Uso do objecto DataSet para ler uma tabela da base de dados Página obtida por cópia da página MasterDetail2GridView.aspx. Rename para MasterDetail2GridViewCriaColuna.aspx. Edição do ficheiro MasterDetail2GridViewCriaColuna.aspx: no cabeçalho alterado em Inherits (1): CodeFile="MasterDetail2GridViewCriaColuna.aspx.cs" Inherits="MasterDetail2GridViewCriaColuna" Edição do ficheiro MasterDetail2GridViewCriaColuna.aspx.cs: no nome da classe (1): public partial class MasterDetail2GridViewCriaColuna : ...
  • ficheiro MasterDetail2GridViewCriaColuna.aspx.cs: protected void GridView1_SelectedIndexChanged( object sender, EventArgs e) { DAL dal = new DAL(); int idCat = (int)GridView1.SelectedDataKey.Value; DataSet ds = dal.getDataSetProdutosByIdCategoriaAdicionaColuna(idCat); GridView2.DataSource = ds; GridView2.DataBind(); dal.closeConnection(); } DAL.cs: public DataSet getDataSetProdutosByIdCategoriaAdicionaColuna(int idCat) { getConnection(); OleDbCommand cmd = new OleDbCommand(); string strSql = "Select * From Produtos Where IdCat=?"; cmd.Connection = conn; cmd.CommandText = strSql; cmd.Parameters.AddWithValue("idCat", idCat); OleDbDataAdapter da = new OleDbDataAdapter(); da.SelectCommand = cmd; DataSet ds = new DataSet(); da.Fill(ds, "Produtos"); // criacao de uma coluna nova no dataSet DataColumn dc = new DataColumn("Valor Total"); dc.Expression = "Preco * Stock"; ds.Tables[0].Columns.Add(dc); return ds; } 10 –