Jednotlivé metódy v zdrojovom kóde predstavujú operácie ako vytvorenie mdb, vytvorenie tabuľky v databáze, vloženie údajov do tabuľky, čítanie dát z tabuľky, zmazanie údajov z tabuľky.
Použité referencie:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using ADOX; using System.Data.OleDb; using System.Data; using System.IO;
Vytvorenie access databázy:
//Create Access database public bool createMDB(string fileName) { try { if(File.Exists(fileName + ".mdb")) { File.Delete(fileName + ".mdb"); } ADOX.Catalog catalog = new ADOX.Catalog(); string str = "provider=Microsoft.Jet.OleDb.4.0;Data Source={0};Jet OLEDB:Engine Type=5"; catalog.Create(String.Format(str, fileName + ".mdb")); catalog = null; return true; } catch (Exception ex) { this.errorMessage = ex.Message; return false; } }
Vytvorenie tabuľky (mdb) s názvom "Table1" a parametrami "name1", "name2", "name3":
//Create Table public bool createTable(string fileName) { try { OleDbConnection dbConn = new OleDbConnection("provider=Microsoft.Jet.OleDb.4.0;Data Source=" + fileName + ".mdb;"); dbConn.Open(); OleDbCommand dbCmd = new OleDbCommand(); dbCmd.Connection = dbConn; dbCmd.CommandText = "CREATE TABLE Table1 ([name1] Text, [name2] Text, [name3] Text)"; dbCmd.ExecuteNonQuery(); dbConn.Close(); return true; } catch (Exception ex) { this.errorMessage = ex.Message; return false; } }
Vloženie údajov do tabuľky
string data1 = "value1",
string data2 = "value2",
string data3 = "value3".
//Insert Data public bool insertData(string fileName, string data1, string data2, string data3) { try { OleDbConnection dbConn = new OleDbConnection("provider=Microsoft.Jet.OleDb.4.0;Data Source=" + fileName + ".mdb;"); dbConn.Open(); OleDbCommand dbCmd = new OleDbCommand(); dbCmd.Connection = dbConn; dbCmd.CommandText = "INSERT INTO Table1 (name1, name2, name3) values ('" + data1 + "','" + data2 + "','" + data3 + "');"; int numRowsAffected = dbCmd.ExecuteNonQuery(); if (numRowsAffected == 0) { this.errorMessage = "Failed to insert data"; return false; } dbConn.Close(); return true; } catch (Exception ex) { this.errorMessage = ex.Message; return false; } }
Čítanie údajov z tabuľky Table1:
//Read data public bool readData(string fileName, out DataTable dbRead) { dbRead = new DataTable(); try { OleDbConnection dbConn = new OleDbConnection("provider=Microsoft.Jet.OleDb.4.0;Data Source=" + fileName + ".mdb;"); dbConn.Open(); string cmd = "SELECT name1, name2, name3 FROM Table1"; OleDbDataAdapter datAdapt = new OleDbDataAdapter(cmd, dbConn); OleDbCommandBuilder dbCmdBuild = new OleDbCommandBuilder(datAdapt); datAdapt.Fill(dbRead); dbConn.Close(); return true; } catch (Exception ex) { this.errorMessage = ex.Message; return false; } }
Údaje sú uložené v premennej dbRead, ktorá je typu DataTable.
Ak je potrebné uložit data napríklad do poľa (dvojrozmerného), môžeme to urobiť takto:
//Array of data from data table public bool dataToArray(string fileName, DataTable dbRead, out string[,] dataArray) { dataArray = new string[dbRead.Rows.Count, dbRead.Columns.Count]; try { for (int rowNum = 0; rowNum < dbRead.Rows.Count; rowNum++) { for (int colNum = 0; colNum < dbRead.Columns.Count; colNum++) { dataArray[rowNum, colNum] = dbRead.Rows[rowNum][colNum].ToString(); } } return true; } catch (Exception ex) { this.errorMessage = ex.Message; return false; } }
Vymazanie údajov z tabuľky.
Z tabuľky sa zmaže riadok, v ktorom je splnená podmienka name1 = value1.
Ak je potrebné použiť viac ako jednu podmienku, je možné použit napríklad zápis (name1 = ´value1´ AND name2 = ´value2´).
//Delete data public bool deleteData(string fileName) { try { OleDbConnection dbConn = new OleDbConnection("provider=Microsoft.Jet.OleDb.4.0;Data Source=" + fileName + ".mdb;"); dbConn.Open(); OleDbCommand dbCmd = new OleDbCommand(); dbCmd.Connection = dbConn; dbCmd.CommandText = "DELETE FROM Table1 WHERE (name1 = 'value1')"; dbCmd.ExecuteNonQuery(); dbConn.Close(); return true; } catch (Exception ex) { this.errorMessage = ex.Message; return false; } }