Fehler beim Auslesen der Datenbank

Slater

Erfahrenes Mitglied
Ich habe ein problem mit dem Auslesen einer Acces Datenabnk. Und zwar gibt er mir immer den Fehler:

Eine nicht behandelte Ausnahme des Typs 'System.Data.OleDb.OleDbException' ist in system.data.dll aufgetreten.

und zwar nach der Zeile "conn1.Open();"
Ich finde einfach den Fehler nicht.

Kann mir jemand helfen?

mfg
Slater

Code:
for (int i=1; i<=100; i++)
{
OleDbConnection conn1 = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=Datenbank.mdb");
OleDbCommand cmd1 = new OleDbCommand();
cmd1.Connection = conn1;
cmd1.CommandText = "SELECT Winkel AS Winkel FROM Kran WHERE ID=" + i + "";
conn1.Open();
int Winkel = Convert.ToInt32(cmd1.ExecuteScalar());
conn1.Close();
OleDbConnection conn2 = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=Datenbank.mdb");
OleDbCommand cmd2 = new OleDbCommand();
cmd2.Connection = conn2;
cmd2.CommandText = "SELECT YHacken AS Yhacken FROM Kran WHERE ID=" + i + "";
cmd2.Connection.Open();
int YHacken = Convert.ToInt32(cmd2.ExecuteScalar());
conn2.Close();
OleDbConnection conn3 = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=Datenbank.mdb");
OleDbCommand cmd3 = new OleDbCommand();
cmd3.Connection = conn3;
cmd3.CommandText = "SELECT XLaufkatze AS XLaufkatze FROM Kran WHERE ID=" + i + "";
cmd3.Connection.Open();
int XLaufkatze = Convert.ToInt32(cmd3.ExecuteScalar());
conn3.Close();
int x = i+3;
ws.Cells[x,1] = Convert.ToString(i);
ws.Cells[x,2] = Convert.ToString(Winkel);
ws.Cells[x,3] = Convert.ToString(YHacken);
ws.Cells[x,4] = Convert.ToString(XLaufkatze);
}
 
for (int i=1; i<=100; i++)
{
OleDbConnection conn1 = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=Datenbank.mdb");
OleDbCommand cmd1 = new OleDbCommand();
cmd1.Connection = conn1;
cmd1.CommandText = "SELECT Winkel AS Winkel FROM Kran WHERE ID=" + i + "";
conn1.Open();
conn1.BeginTransaction();
[Kannst ja mal so probieren ....... V V V V V V V]
int Winkel = Convert.ToInt32(cmd1.ExecuteReader());
conn1.Close();
Woher kommt das conn1.open ? Probiers aber mal mit BeginTransaction . Ich denke das müsste funktionieren. (Im .NET Framework 1.1 ist das zumindest der Fall).

Oder ich habe deine Frage falsch interpretiert.
(Bitte mach mir keine Vorwürfe wenns nicht funktioniert, ich arbeite mit MySql-Datenbanken).
 
Zuletzt bearbeitet:
Hi,

koenntest du die genaue ExceptionMessage posten? 'System.Data.OleDb.OleDbException' ist ein wenig zu allgemein um zu sagen wo genau der Fehler liegt.
Du oeffnest und schließt die Verbindung zur Datenbank etwa 300 mal. Ich denke das da verbindungslose DataTables besser geeignet waeren. So in etwa (Pseudocode!):
Code:
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=Datenbank.mdb";
OleDbConnection conn = new OleDbConnection(connString);

string sql =  "SELECT Winkel AS Winkel FROM Kran";
OleDbDataAdapter adapter = new OleDbDataAdapter(sql, conn);
DataTable Winkel = new DataTable();
adapter.Fill(Winkel);

adapter.SelectCommand.CommandText = "SELECT YHacken AS Yhacken FROM Kran";
DataTable YHacken = new DataTable();
adapter.Fill(YHacken);

adapter.SelectCommand.CommandText = "SELECT XLaufkatze AS XLaufkatze FROM Kran";
DataTable XLaufkatze = new DataTable();
adapter.Fill(XLaufkatze);

for (int i = 1; i <= 100; i++)
{
    int x = i + 3;
    ws.Cells[x, 1] = Convert.ToString(i);
    ws.Cells[x, 2] = Convert.ToString(Winkel.Rows[i]["Winkel"]);
    ws.Cells[x, 3] = Convert.ToString(YHacken.Rows[i]["Yhacken"]);
    ws.Cells[x, 4] = Convert.ToString(XLaufkatze.Rows[i]["XLaufkatze"]);
}
 
Zurück