asp - asp.net - aspcode.it

COMMUNITY - Login
 Username:
 
 Password:
 
Voglio registrarmi!
Password dimenticata?
 Utenti on-line: 0
 Ospiti on-line: 8028
ASPCode.it - Store

  > > Tips

Controllare rapidamente lo stato di un DataSet
di Maurizio Ferrera

Data di pubblicazione: 04/11/2003        Voto della community: 0,00 (Votanti: 0)


Per controllare rapidamente il contenuto di un DataSet possiamo ricorrere alla rappresentazione dello stesso in formato Xml. La rappresentazione Xml pu˛ essere scritta in vari modi: come file, stringa, stream o XmlWriter. Ci serviamo ad esempio della istruzione :

string xmlDs = nomeDataSet.GetXml();

per ottenere la rappresentazione Xml come stringa, senza le informazioni sullo schema.
Con un semplice Response.Write (xmlDs) inviamo al browser tale stringa e controlliamo lo stato del DataSet passando alla visualizzazione della pagina in modalitÓ Html.

Una ulteriore possibilitÓ Ŕ quella di visualizzare annidati i record correlati di due tabelle del DataSet tra le quali abbiamo impostato una relazione padre-figlio. E' sufficiente settare la proprietÓ Nested della DataRelation a true:

dl.Nested = true;

Il codice di esempio mette in pratica quanto detto. Le due tabelle correlate sono la tabella Categorie e la tabella Prodotti del database NorthWind formato Access, di cui visualizziamo la rappresentazione Xml con annidati i record correlati:


<%@ Page Language="c#" debug="true" %>
<%@ Import Namespace="System.Data.OleDb" %>
<%@ Import Namespace="System.Data" %>

<script runat="server">

    void Page_Load () {


      DataSet ds = new DataSet();

      string strCnn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:/ASPCODE/Northwind.mdb";
      OleDbConnection cnn = new OleDbConnection(strCnn) ;
      cnn.Open();


      OleDbDataAdapter da0 = new OleDbDataAdapter();
      OleDbCommand cmd0 = new OleDbCommand("SELECT TOP 5 IDCategoria, NomeCategoria FROM categorie", cnn);
  da0.SelectCommand = cmd0;
      da0.Fill(ds, "Categorie");

      OleDbDataAdapter da1 = new OleDbDataAdapter();
      OleDbCommand cmd1 = new OleDbCommand("SELECT TOP 5 IDProdotto, IDCategoria, NomeProdotto FROM Prodotti", cnn);
  da1.SelectCommand = cmd1;
      da1.Fill(ds, "Prodotti");

      cnn.Close();

      DataRelation dl = ds.Relations.Add("categorie_prodotti", ds.Tables["Categorie"].Columns["IDCategoria"], ds.Tables["Prodotti"].Columns["IDCategoria"]);

      dl.Nested = true;
      string xmlDs = ds.GetXml();
      Response.Write (xmlDs);

    }
</script>

<html>
<head>
</head>
<body>
    <form runat="server">
        <!-- Insert content here -->
    </form>
</body>
</html>

che, passando in modalitÓ Html, Ŕ :

<NewDataSet>
  <Categorie>
    <IDCategoria>1</IDCategoria>
    <NomeCategoria>Bevande</NomeCategoria>
    <Prodotti>
      <IDProdotto>1</IDProdotto>
      <IDCategoria>1</IDCategoria>
      <NomeProdotto>Chai</NomeProdotto>
    </Prodotti>
    <Prodotti>
      <IDProdotto>2</IDProdotto>
      <IDCategoria>1</IDCategoria>
      <NomeProdotto>Chang</NomeProdotto>
    </Prodotti>
  </Categorie>
  <Categorie>
    <IDCategoria>2</IDCategoria>
    <NomeCategoria>Condimenti</NomeCategoria>
    <Prodotti>
      <IDProdotto>3</IDProdotto>
      <IDCategoria>2</IDCategoria>
      <NomeProdotto>Aniseed Syrup</NomeProdotto>
    </Prodotti>
    <Prodotti>
      <IDProdotto>4</IDProdotto>
      <IDCategoria>2</IDCategoria>
      <NomeProdotto>Chef Anton's Cajun Seasoning</NomeProdotto>
    </Prodotti>
    <Prodotti>
      <IDProdotto>5</IDProdotto>
      <IDCategoria>2</IDCategoria>
      <NomeProdotto>Chef Anton's Gumbo Mix</NomeProdotto>
    </Prodotti>
  </Categorie>
  <Categorie>
    <IDCategoria>3</IDCategoria>
    <NomeCategoria>Dolciumi</NomeCategoria>
  </Categorie>
  <Categorie>
    <IDCategoria>4</IDCategoria>
    <NomeCategoria>Latticini</NomeCategoria>
  </Categorie>
  <Categorie>
    <IDCategoria>5</IDCategoria>
    <NomeCategoria>Cereali</NomeCategoria>
  </Categorie>
</NewDataSet>




Utenti connessi: 8028