venerdì 18 maggio 2012

MS: 70-516 Samples of chapter 1 Lesson 1 part 2

Proseguiamo con il post, cercherò il più possibile di suddividere i lavori, anche se sto notando quando il libro sia prolisso.
static void Main(string[] args)
        {
            /* le classi disconnesse sono elemeniti cardine del framework..
             * La loro presenza risale alla versione 1.0
             * Non sono mai state dichiarate come obsolete e sono di uso diffuso.
             * 
             * la particolarità e che non sono connesse direttamente ai dati
             */

            #region 01-09
            Sample_01();

            Sample_02();

            Sample_03();

            Sample_04();

            Sample_05();

            Sample_06();

            Sample_07();

            Sample_08();

            Sample_09();
            #endregion

            Sample_10();

            Sample_11();

            Sample_12();

            Sample_13();

            Sample_14();

            Sample_15();

            Sample_16();
        }
Ed ecco i nuovi sample ...
static void Sample_10()
        {
            // Utilizzo di Data View

            //
            // il dataview consente di creare una vista 
            // logica della tabella 
            // questo implica che per una dataTable 
            // possono esiste (nessuna - una - più ) dataview.
            //
            DataTable dt1 = new DataTable("NewDataTable");

            DataColumn dc0 = new DataColumn("ID");
            dc0.DataType = typeof(int);
            dc0.AllowDBNull = false;
            dc0.AutoIncrement = true;
            dc0.AutoIncrementStep = 1;
            dc0.AutoIncrementSeed = 1;
            dt1.Columns.Add(dc0);

            DataColumn dc1 = new DataColumn("Name");
            dc1.DataType = typeof(string);
            dc1.MaxLength = 50;
            dc1.AllowDBNull = false;
            dt1.Columns.Add(dc1);

            DataColumn dc2 = new DataColumn("Description");
            dc2.DataType = typeof(string);
            dc2.MaxLength = 150;
            dc2.AllowDBNull = true;
            dt1.Columns.Add(dc2);

            dt1.PrimaryKey = new DataColumn[] { dc0 };

            DataRow dr1 = dt1.Rows.Add(new object[] { 1, "Fabio", "Team Leader" });
            DataRow dr2 = dt1.Rows.Add(new object[] { 2, "Fabio", "Developer" });
            DataRow dr3 = dt1.Rows.Add(new object[] { 3, "Fabio", "Tester" });

            // ordina per descrizione
            DataView dw_01 = new DataView(dt1);
            dw_01.Sort = "Description Desc";            

            // ordina per id
            DataView dw_02 = new DataView(dt1);
            dw_02.Sort = "ID Desc";

            // preleva solo la terza riga 
            DataView dw_03 = new DataView(dt1);
            dw_03.RowFilter = "ID >2";

            // preleva solo la riga uno e la riga 2
            DataView dw_04 = new DataView(dt1);
            dw_04.RowFilter = "Description Like '%l%'";

            // è possibil indicare in un estrazione
            // anche il tipo di dato che effettivamente 
            // vogliamo analizzare.

            DataView dw_05 = new DataView(dt1);
            dw_05.RowFilter = "Description Like '%l%'";
            dw_05.RowStateFilter = DataViewRowState.Unchanged;

        }
static void Sample_11()
        {
            // Utilizzo di Data View

            //
            // il dataview consente di creare una vista 
            // logica della tabella 
            // questo implica che per una dataTable 
            // possono esiste (nessuna - una - più ) dataview.
            //
            DataTable dt1 = new DataTable("NewDataTable");

            DataColumn dc0 = new DataColumn("ID");
            dc0.DataType = typeof(int);
            dc0.AllowDBNull = false;
            dc0.AutoIncrement = true;
            dc0.AutoIncrementStep = 1;
            dc0.AutoIncrementSeed = 1;
            dt1.Columns.Add(dc0);

            DataColumn dc1 = new DataColumn("Name");
            dc1.DataType = typeof(string);
            dc1.MaxLength = 50;
            dc1.AllowDBNull = false;
            dt1.Columns.Add(dc1);

            DataColumn dc2 = new DataColumn("Description");
            dc2.DataType = typeof(string);
            dc2.MaxLength = 150;
            dc2.AllowDBNull = true;
            dt1.Columns.Add(dc2);

            dt1.PrimaryKey = new DataColumn[] { dc0 };

            DataRow dr1 = dt1.Rows.Add(new object[] { 1, "Fabio", "Team Leader" });
            DataRow dr2 = dt1.Rows.Add(new object[] { 2, "Fabio", "Developer" });
            DataRow dr3 = dt1.Rows.Add(new object[] { 3, "Fabio", "Tester" });

            // ordina per descrizione
            DataView dw_01 = new DataView(dt1);
            dw_01.RowFilter = "Description like '%t%'";

            var buffer = new System.Text.StringBuilder();
            foreach (DataColumn dc in dw_01.Table.Columns)
            {
                buffer.AppendFormat("{0,15} ", dc.ColumnName);
            }
            buffer.Append("\r\n");
            foreach (DataRowView dr in dw_01)
            {
                foreach (DataColumn dc in dw_01.Table.Columns)
                {
                    buffer.AppendFormat("{0,15} ", dr.Row[dc]);
                }
                buffer.Append("\r\n");
            }
            Console.WriteLine(buffer.ToString());

        }
static void Sample_12()
        {
            // Utilizzo di Data View

            //
            // Esportare da un dataview ad una data table
            //
            DataTable dt1 = new DataTable("NewDataTable");

            DataColumn dc0 = new DataColumn("ID");
            dc0.DataType = typeof(int);
            dc0.AllowDBNull = false;
            dc0.AutoIncrement = true;
            dc0.AutoIncrementStep = 1;
            dc0.AutoIncrementSeed = 1;
            dt1.Columns.Add(dc0);

            DataColumn dc1 = new DataColumn("Name");
            dc1.DataType = typeof(string);
            dc1.MaxLength = 50;
            dc1.AllowDBNull = false;
            dt1.Columns.Add(dc1);

            DataColumn dc2 = new DataColumn("Description");
            dc2.DataType = typeof(string);
            dc2.MaxLength = 150;
            dc2.AllowDBNull = true;
            dt1.Columns.Add(dc2);

            dt1.PrimaryKey = new DataColumn[] { dc0 };

            DataRow dr1 = dt1.Rows.Add(new object[] { 1, "Fabio", "Team Leader" });
            DataRow dr2 = dt1.Rows.Add(new object[] { 2, "Fabio", "Developer" });
            DataRow dr3 = dt1.Rows.Add(new object[] { 3, "Fabio", "Tester" });

            // ordina per descrizione
            DataView dw_01 = new DataView(dt1);
            dw_01.RowFilter = "Description like '%t%'";


            DataTable dt2 = dw_01.ToTable("ntFromView", true, "ID", "Name", "Description");
        }
static void Sample_13()
        { 
            //
            // utilizzo del dataSet
            //

            //
            // creazione e composizione 
            // di un schema con 2 tabelle 
            // con chiave primaria e 
            // relazione.
            //
            DataSet ds = new DataSet("Colleghi");

            DataTable dTipoCollega = ds.Tables.Add("TipoCollega");
            dTipoCollega.Columns.Add("IDTipoCollega", typeof(int));
            dTipoCollega.Columns.Add("TipoCollega", typeof(string));
            dTipoCollega.Columns.Add("Descrizione", typeof(string));

            dTipoCollega.PrimaryKey = new DataColumn[]{dTipoCollega.Columns["IDTipoCollega"]};

            DataTable dCollega = ds.Tables.Add("Collega");
            dCollega.Columns.Add("IDCollega", typeof(int));
            dCollega.Columns.Add("IDTipoCollega", typeof(int));
            dCollega.Columns.Add("Cognome", typeof(string));
            dCollega.Columns.Add("Nome", typeof(string));
            dCollega.Columns.Add("Eta", typeof(string));

            dCollega.PrimaryKey = new DataColumn[] { dCollega.Columns["IDCollega"] };

            ds.Relations.Add("rCollega_Tipo", dTipoCollega.Columns["IDTipoCollega"], 
                                                dCollega.Columns["IDCollega"]);


        }
static void Sample_14()
        {
            // specializzazione di un dataset

            DataSet ds = new DataSet("Colleghi");

            DataTable dTipoCollega = ds.Tables.Add("TipoCollega");
            dTipoCollega.Columns.Add("IDTipoCollega", typeof(int));
            dTipoCollega.Columns.Add("TipoCollega", typeof(string));
            dTipoCollega.Columns.Add("Descrizione", typeof(string));

            dTipoCollega.PrimaryKey = new DataColumn[] { dTipoCollega.Columns["IDTipoCollega"] };

            DataTable dCollega = ds.Tables.Add("Collega");
            dCollega.Columns.Add("IDCollega", typeof(int));
            dCollega.Columns.Add("IDTipoCollega", typeof(int));
            dCollega.Columns.Add("Cognome", typeof(string));
            dCollega.Columns.Add("Nome", typeof(string));
            dCollega.Columns.Add("Eta", typeof(string));

            dCollega.PrimaryKey = new DataColumn[] { dCollega.Columns["IDCollega"] };

            ds.Relations.Add("rCollega_Tipo", dTipoCollega.Columns["IDTipoCollega"],
                                                dCollega.Columns["IDCollega"]);


            //
            //  accesso alle tabelle
            //

            DataTable dt01 = ds.Tables["TipoCollega"];

            //
            // questa riga risulta essere in errore
            //
            // DataTable dt02 = ds.TipoCollega;
            // 
            // per poter ovviare al problema è necesario creare 
            // uno schema XSD che consenta 
            // l'individuazione corretta della tabella as Property
            // 

        }
static void Sample_15()
        { 
            //
            // per questo esempio è necessario aggiungere 
            // al progetto un dataSet
            // al fine di ricreareare tramite editor
            // le tabelle le chiavi e la relazione 
            // progettata via codice.

            // Consolidare l'esempio tramite l'immagine in allegato.

            dsColleghi dC = new dsColleghi();

            DataTable dtc = dC.dtTipoCollega;
            DataTable dc = dC.dtCollega;

        }
static void Sample_16()
        {
            dsColleghi dC = new dsColleghi();

            DataTable dtc = dC.dtTipoCollega;
            dtc.Rows.Add("1", "Interno", "Collega a dipendeza del cliente");
            dtc.Rows.Add("2", "Esterno", "Collega a dipendeza di un fornitore");
            dtc.Rows.Add("3", "Stretto", "Collega a dipendeza del tuo stesso fornitore");


            DataTable dc = dC.dtCollega;
            dc.Rows.Add("1", "1", "Arosio", "Fabio", "38");
            dc.Rows.Add("2", "1", "Arosio", "Lorenzo", "38");
            dc.Rows.Add("3", "2", "Arosio", "Claudio", "38");


            DataRow[] Colleghi = dtc.Rows[0].GetChildRows("dtTipoCollega_dtCollega");
            foreach (DataRow dr in Colleghi)
            {
                Console.WriteLine( string.Format("Collega: {0} Tipo {1}",
                                    dr["Nome"], dtc.Rows[0]["TipoCollega"]));
            }



            DataRow Tipo = dc.Rows[1].GetParentRow("dtTipoCollega_dtCollega");
            
            Console.WriteLine( string.Format("Tipo: {0} Collega {1}",
                            Tipo["TipoCollega"], dc.Rows[1]["Nome"]));
            
        
        }

Nessun commento: