Crew .NET |
|
Hetgeen je kan doen is een array maken met daarin alle CREATE statements. Daarna met een loop elke keer de volgende tekst kiezen en uitvoeren. Dan krijg je zoiets als dit:
private void createTables()
{
OleDbConnection oc = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+locatie+"/"+naam+".mdb");
OleDbCommand ocom = new OleDbCommand();
string[] commands = new string[4] { "create_een", "create_twee", "create_drie", "create_vier" };
for(int i = 0; i <= 3; i++)
{
try
{
oc.Open();
ocom.Connection = oc;
ocom.CommandText = commands[i];
ocom.ExecuteNonQuery();
ocom = null;
}
catch (OleDbException ex)
{
MessageBox.Show("Foutmelding: " + ex.ToString());
}
finally
{
oc.Close();
}
}
}
private void createTables() { OleDbConnection oc = new OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+locatie +"/"+naam +".mdb"); OleDbCommand ocom = new OleDbCommand (); string[] commands = new string[4] { "create_een", "create_twee", "create_drie", "create_vier" }; for(int i = 0; i <= 3; i++) { try { oc.Open(); ocom.Connection = oc; ocom.CommandText = commands[i]; ocom.ExecuteNonQuery(); ocom = null; } catch (OleDbException ex) { MessageBox.Show("Foutmelding: " + ex.ToString()); } finally { oc.Close(); } } }
Hetgeen ik ook wel bij de code bijgezet heb is een finally-blok. Het is goed dat je met try-catch werkt, maar stel dat een keer in de try iets misgaat blijft de verbinding open staan. Daarna gaat hij terug in de loop en probeert hij een verbinding te openen die al open staat en krijg je ook een lelijke fout. Je zou die ook kunnen sluiten in de try denk je dan, maar als het misgaat gaat hij direct naar de catch en sluit hij ze toch niet. Als je meer hierover wil lezen verwijs ik je naar hier: KLIK. |