SlideShare ist ein Scribd-Unternehmen logo
1 von 6
Downloaden Sie, um offline zu lesen
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 –

Weitere ähnliche Inhalte

Ähnlich wie Notas ado1

Curso de Ruby on Rails - Aula 02
Curso de Ruby on Rails - Aula 02Curso de Ruby on Rails - Aula 02
Curso de Ruby on Rails - Aula 02Maurício Linhares
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Erisvaldo Junior
 
Windows Phone: Verificando a conexão com a internet
Windows Phone: Verificando a conexão com a internetWindows Phone: Verificando a conexão com a internet
Windows Phone: Verificando a conexão com a internetDevmedia
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Erisvaldo Junior
 
Verificando a conexão com a internet no Windows Phone
Verificando a conexão com a internet no Windows PhoneVerificando a conexão com a internet no Windows Phone
Verificando a conexão com a internet no Windows PhoneDevmedia
 
Como conectar programas em linguagem java a bases de dados
Como conectar programas em linguagem java  a bases de dadosComo conectar programas em linguagem java  a bases de dados
Como conectar programas em linguagem java a bases de dadosHenrique Fernandes
 
Windows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows AzureWindows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows AzureVitor Ciaramella
 
Desenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a DadosDesenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a DadosVitor Silva
 
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernateDesenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernateVitor Silva
 
Curso de Ruby on Rails - Aula 03
Curso de Ruby on Rails - Aula 03Curso de Ruby on Rails - Aula 03
Curso de Ruby on Rails - Aula 03Maurício Linhares
 
ZF Básico - 5. Modelo
ZF Básico - 5. ModeloZF Básico - 5. Modelo
ZF Básico - 5. ModeloMarcos Bezerra
 
Inteligencia artificial 3
Inteligencia artificial 3Inteligencia artificial 3
Inteligencia artificial 3Nauber Gois
 
Desenvolvimento web com vs2012: Uma visão geral
Desenvolvimento web com vs2012: Uma visão geralDesenvolvimento web com vs2012: Uma visão geral
Desenvolvimento web com vs2012: Uma visão geralHelder Lopes
 
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Erisvaldo Junior
 
Cobol Web com Net Express 3.1/4.0/5.x - Parte 2
Cobol Web com Net Express 3.1/4.0/5.x - Parte 2Cobol Web com Net Express 3.1/4.0/5.x - Parte 2
Cobol Web com Net Express 3.1/4.0/5.x - Parte 2Altair Borges
 

Ähnlich wie Notas ado1 (20)

Mini curso de c#.net
Mini curso de c#.netMini curso de c#.net
Mini curso de c#.net
 
Usando a data grid wpf
Usando a data grid wpfUsando a data grid wpf
Usando a data grid wpf
 
Curso de Ruby on Rails - Aula 02
Curso de Ruby on Rails - Aula 02Curso de Ruby on Rails - Aula 02
Curso de Ruby on Rails - Aula 02
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5
 
Windows Phone: Verificando a conexão com a internet
Windows Phone: Verificando a conexão com a internetWindows Phone: Verificando a conexão com a internet
Windows Phone: Verificando a conexão com a internet
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6
 
Verificando a conexão com a internet no Windows Phone
Verificando a conexão com a internet no Windows PhoneVerificando a conexão com a internet no Windows Phone
Verificando a conexão com a internet no Windows Phone
 
Ado.net.exmplos.praticos
Ado.net.exmplos.praticosAdo.net.exmplos.praticos
Ado.net.exmplos.praticos
 
Como conectar programas em linguagem java a bases de dados
Como conectar programas em linguagem java  a bases de dadosComo conectar programas em linguagem java  a bases de dados
Como conectar programas em linguagem java a bases de dados
 
Asp.net.data
Asp.net.dataAsp.net.data
Asp.net.data
 
Windows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows AzureWindows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows Azure
 
Desenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a DadosDesenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a Dados
 
React js
React js React js
React js
 
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernateDesenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
 
Curso de Ruby on Rails - Aula 03
Curso de Ruby on Rails - Aula 03Curso de Ruby on Rails - Aula 03
Curso de Ruby on Rails - Aula 03
 
ZF Básico - 5. Modelo
ZF Básico - 5. ModeloZF Básico - 5. Modelo
ZF Básico - 5. Modelo
 
Inteligencia artificial 3
Inteligencia artificial 3Inteligencia artificial 3
Inteligencia artificial 3
 
Desenvolvimento web com vs2012: Uma visão geral
Desenvolvimento web com vs2012: Uma visão geralDesenvolvimento web com vs2012: Uma visão geral
Desenvolvimento web com vs2012: Uma visão geral
 
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
 
Cobol Web com Net Express 3.1/4.0/5.x - Parte 2
Cobol Web com Net Express 3.1/4.0/5.x - Parte 2Cobol Web com Net Express 3.1/4.0/5.x - Parte 2
Cobol Web com Net Express 3.1/4.0/5.x - Parte 2
 

Mehr von Mariaa Maria

Css cheat-sheet-v2
Css cheat-sheet-v2Css cheat-sheet-v2
Css cheat-sheet-v2Mariaa Maria
 
Css cheat-sheet-v2
Css cheat-sheet-v2Css cheat-sheet-v2
Css cheat-sheet-v2Mariaa Maria
 
Css cheat-sheet-v2
Css cheat-sheet-v2Css cheat-sheet-v2
Css cheat-sheet-v2Mariaa Maria
 
Css cheat-sheet-v3
Css cheat-sheet-v3Css cheat-sheet-v3
Css cheat-sheet-v3Mariaa Maria
 
asdasdasdsadasdsadasd
asdasdasdsadasdsadasdasdasdasdsadasdsadasd
asdasdasdsadasdsadasdMariaa Maria
 
Css cheat-sheet-v2
Css cheat-sheet-v2Css cheat-sheet-v2
Css cheat-sheet-v2Mariaa Maria
 
Css cheat-sheet-v2
Css cheat-sheet-v2Css cheat-sheet-v2
Css cheat-sheet-v2Mariaa Maria
 
Css cheat-sheet-v2
Css cheat-sheet-v2Css cheat-sheet-v2
Css cheat-sheet-v2Mariaa Maria
 
Css cheat-sheet-v2
Css cheat-sheet-v2Css cheat-sheet-v2
Css cheat-sheet-v2Mariaa Maria
 
Css cheat-sheet-v2
Css cheat-sheet-v2Css cheat-sheet-v2
Css cheat-sheet-v2Mariaa Maria
 
J query1.2.cheatsheet.v1.0
J query1.2.cheatsheet.v1.0J query1.2.cheatsheet.v1.0
J query1.2.cheatsheet.v1.0Mariaa Maria
 

Mehr von Mariaa Maria (12)

Css cheat-sheet-v2
Css cheat-sheet-v2Css cheat-sheet-v2
Css cheat-sheet-v2
 
Css cheat-sheet-v2
Css cheat-sheet-v2Css cheat-sheet-v2
Css cheat-sheet-v2
 
Css cheat-sheet-v2
Css cheat-sheet-v2Css cheat-sheet-v2
Css cheat-sheet-v2
 
Css cheat-sheet-v3
Css cheat-sheet-v3Css cheat-sheet-v3
Css cheat-sheet-v3
 
rytyeyyey
rytyeyyeyrytyeyyey
rytyeyyey
 
asdasdasdsadasdsadasd
asdasdasdsadasdsadasdasdasdasdsadasdsadasd
asdasdasdsadasdsadasd
 
Css cheat-sheet-v2
Css cheat-sheet-v2Css cheat-sheet-v2
Css cheat-sheet-v2
 
Css cheat-sheet-v2
Css cheat-sheet-v2Css cheat-sheet-v2
Css cheat-sheet-v2
 
Css cheat-sheet-v2
Css cheat-sheet-v2Css cheat-sheet-v2
Css cheat-sheet-v2
 
Css cheat-sheet-v2
Css cheat-sheet-v2Css cheat-sheet-v2
Css cheat-sheet-v2
 
Css cheat-sheet-v2
Css cheat-sheet-v2Css cheat-sheet-v2
Css cheat-sheet-v2
 
J query1.2.cheatsheet.v1.0
J query1.2.cheatsheet.v1.0J query1.2.cheatsheet.v1.0
J query1.2.cheatsheet.v1.0
 

Notas ado1

  • 1. 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
  • 2. . . . 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 />")); }
  • 3. 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)
  • 4. 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
  • 5. - 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 : ...
  • 6. 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 –