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;
}
}







