Pagina personale di:
Carlo Vecchio
appunti di C#, R, SQL Server, ASP.NET, algoritmi, numeri
Vai ai contenuti

C# - Lavorare con i database Access MDB

C#

Creazione di un database
   •   Non esistono classi native nel Framework che permettano la creazione di un database Access.
   •   Occorre quindi fare riferimento alla DLL delle estensioni ADO, chiamata 'adox.dll'.

   // Creazione database
   // Aggiungere ai riferimenti 'Microsoft ADO Ext. 2.8 for DDL and Security'           
   ADOX.CatalogClass cat = new ADOX.CatalogClass();
   cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;
               Data Source=C:\\Temp\\db_name.mdb;
               Jet OLEDB:Engine Type=5");
   cat = null;   


Aggiunta di una tabella
   OleDbConnection cn = new OleDbConnection();
   cn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;
                           Data Source=C:\\Temp\\db_name.mdb";
   cn.Open();

   OleDbCommand cm = new OleDbCommand();
   cm.CommandText = "CREATE TABLE tabella1";
   cm.Connection = cn;
   cm.ExecuteNonQuery();

   cn.Close();


Aggiunta di una colonna
   OleDbConnection cn = new OleDbConnection();
   cn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;
                           Data Source=C:\\Temp\\db_name.mdb";
   cn.Open();

   OleDbCommand cm = new OleDbCommand();
   cm.CommandText = "ALTER TABLE tabella1 ADD COLUMN col_1 TEXT(30) NOT NULL DEFAULT aaa";
   cm.Connection = cn;
   cm.ExecuteNonQuery();

   cn.Close();


Query di esecuzione
   OleDbConnection cn = new OleDbConnection();
   cn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;
                           Data Source=C:\\Temp\\db_name.mdb";
   cn.Open();

   OleDbCommand cm = new OleDbCommand();
   cm.CommandText = "INSERT INTO tabella1 VALUES ('aaa', 'bbb', 111)";
   cm.Connection = cn;
   int rowsAffected = cm.ExecuteNonQuery();

   cn.Close();


Query di selezione
   •   Nell'esempio si estraggono i record di un database tramite un oggetto OleDbDataReader.
   •   I campi sono poi scritti in un oggetto DataGridView.

   dgv1.Rows.Clear();

   OleDbConnection cn = new OleDbConnection();
   cn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;
                           Data Source=C:\\Temp\\db_name.mdb";
   cn.Open();

   OleDbCommand cm = new OleDbCommand();
   cm.CommandText = "SELECT * FROM tabella1";
   cm.Connection = cn;

   OleDbDataReader dr = cm.ExecuteReader();

   while (dr.Read())
   {
       DataGridViewRow dgr = new DataGridViewRow();
       dgv1.Rows.Add(dgr);
       dgv1["COL_NOME", dgv1.Rows.Count - 1].Value = dr["Nome"].ToString();
       dgv1["COL_COGNOME", dgv1.Rows.Count - 1].Value = dr["Cognome"].ToString();
       dgv1["COL_NUMERO", dgv1.Rows.Count - 1].Value = (Int32)dr["Numero"];
       dgv1.Rows[dgv1.Rows.Count - 1].Height = 18;
   }

   dr.Close();
   cn.Close();
      

© 2020 Carlo Vecchio
Torna ai contenuti