C# Datenbank auslesen
-
Guten Tag,
ich habe eine Frage in C#.
Hier der Code:
private void datenbankÖffnenToolStripMenuItem_Click(object sender, EventArgs e) { OleDbConnection con = new OleDbConnection( @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Users\Markus Schneider\Documents\Auto.mdb"); con.Open(); string strSQL = "SELECT * FROM Tabelle1"; OleDbCommand cmd = new OleDbCommand(strSQL, con); OleDbDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { PKW a1 = new PKW(); a1.kennzeichen = dr[1].ToString(); a1.hersteller = dr[2].ToString(); a1.typ = dr[3].ToString(); comboBox1.Items.Add(a1); /*a1.ausleihen = Convert.ToBoolean(dr["ausleihen"]); if (dr["ausleihen"] == "0") { comboBox1.Items.Add(a1); } else { comboBox2.Items.Add(a1); }*/ } dr.Close(); con.Close(); }
In der Datenbank ist ein Wert festgelegt. 0 = nicht ausgeliehen 1 = ausgeliehen
Wenn in der Datenbank der Wert 0 gelesen wird, soll alles in comboBox1 reingeschrieben werden, wenn in der Datenbank der Wert 1 gelesen wird, soll alles in combobox2 geschrieben werden. Aktuell wird alles in comboBox1 geschrieben. Wie muss ich die If Anweisung ändern, damit das möglich ist?/*a1.ausleihen = Convert.ToBoolean(dr["ausleihen"]); if (dr["ausleihen"] == "0") { comboBox1.Items.Add(a1); } else { comboBox2.Items.Add(a1); }*/
Außerdem würde ich gerne wissen, wie ich den Code abändern muss, damit man den Pfad per OpenFileDialog der Datenbankdatei selber aussuchen kann. Momentan ist ein fester Pfad festgelegt.
OleDbConnection con = new OleDbConnection( @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Users\Markus Schneider\Documents\Auto.mdb"); con.Open(); string strSQL = "SELECT * FROM Tabelle1";
Danke für eure Hilfe!
Freundliche Grüße
Markus
-
1. a1.ausleihen wird wohl vom Typ bool sein. Das kannst du dann doch direkt in der if-Abfrage verwenden: if(a1.ausleihen)
if(DialogResult.Ok == diag.ShowDialog()) { OleDbConnection con = new OleDbConnection( string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}", diag.Filename)); }
(Im Forum getippt, ungetestet)
-
Zu Frage 2:
Der sagt nun zu
con.Open();
Kein zulässiger Dateiname.
OleDBExeption wurde nicht behandelt.Gesamter Code:
DialogResult erg = openFileDialog2.ShowDialog(); if (erg == DialogResult.OK) { OleDbConnection con = new OleDbConnection( string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}", openFileDialog2)); con.Open();
Zu Frage 1:
Die if Anweisung sieht nun wie folgt aus:
a1.ausleihen = Convert.ToBoolean(dr["0"]); if (a1.ausleihen == "0") { comboBox1.Items.Add(a1); } else { comboBox2.Items.Add(a1); }
Fehler ist:
Der Operator "==" kann nicht auf Operanden vom Typ "bool" und "string" angewendet werden.Schonmal danke!
Gruß Markus
-
Ahja, dann schaust Du Dir meinen letzten Beitrag einfach nochmal ganz genau an.