Problem mit einer Abfrage

Little Caro

Grünschnabel
Hi,

ich hoffe mir kann hier jemand weiterhelfen. Für mich ist C# leider noch ziemlich Neuland und nu habe ich auch noch das Problem, dass ich gleich Access da miteinbinden soll.
Ich habe auch schon andere Threads gesehen die auch mit Access connecten, aber die helfen mir irgendwie nicht weiter.

Zu meinem Problem:
ich habe auf einem Formular ein GridView, welches mit der Access-Datenbank "mai" connected ist und da mit einer Tabelle Namens "Angebote", da befinden sich 5 Spalten drin (im Prinzip ist aber nur die erste Spalte wichtig, für mich zumindest).
Also das einlesen klappt super.
Jetzt hab ich auf dem selben Formular eine ComboBox mit Namen CMB_Lfr hier kann ich dann die Nummern auswählen die in der ersten Spalte der Tabelle stehen. Funktioniert auch toll.
Jetzt kommt das Problem:
Wenn nun der Nutzer eine Zahl auswählt aus der ComboBox soll sich die Tabelle im GridView aktualisieren und nur noch die Datensätze mit der Nummer in der ersten Spalte anzeigen.
Tut aber nicht.
Fehlermeldung: OleDBException wurde nicht behandelt.

im Programm steht das:
Code:
 private void CMB_Lfr_Code_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (CMB_Lfr_Code.SelectedItem   != null)
            {
                            // liest die Zahl aus der Combobox
                string text = CMB_Lfr_Code.Text ;      
                
                            //ruft das SQL Statement auf
                this.angeboteTableAdapter.Fill1(this.mai1DataSet.Angebote);


und im SQL steht das:

Code:
SELECT * 
FROM   Angebote
WHERE (lfr_code = [text])
 
ich denke mal du hast keine Verbindung aufgebaut.
Entweder OleDbConnection ist null oder ev. ist die DB geschlossen.
Musst mal dein OleDbConnection Objekt im debugger anschauen ob der überhaupt eine Instanz hat und wenn ja ist die Verbindung auch offen.

Ist aber nur eine Vermuttung schön wäre es die genaue OleDBException Meldung zu sehen.
 
Hallo Little Caro,

wie schon von Spyke erwähnt...

1. Ist nicht zu erkennen wo die Connection zugewiesen wird
2. Es ist auch nicht ersichtlich wo du dem DataTableAdapter das
Select Kommando zuweist

Entweder zeigst du nur den halben Code oder der Code ist
gänzlich falsch...
oder... du hast das ganze mit dem Designer zusammgebastelt,
wovon ich eigentlich abrate.

Außerdem gehört [text], solange du nicht Paramtern arbeitest in
Hochkommas.

Gruß
Jens
 
Hi,

danke für die schnellen Antworten, nur leider bin ich nur einen Deut schlauer als vorher.
Wie gesagt ich bin absoluter Anfänger in der .Net-Umgebung. Wo bilde ich denn die Connection und vor allem wie ?
Ich werde aus den ganzen anderen Threads auch irgendwie nicht klüger.
Und ja. ich hab das mit dem Designer gemacht. Ich hab nur gesagt bekommen: "mach das damit, aber nicht wie."
 
Hallo Little Caro,

das ist das Problem mit den Designern.
Zum Testen ganz gut auf die Schnelle, aber für einen Anfänger nicht gut,
da man nicht sieht was hinter den Kulissen passiert.

Du solltest dich erst mal umfassend mit ADO.NET beschäftigen
und die Begriffe
Dataset
DataTable
OleDbConnection
OleDbCommand
OleDbDataAdapter
usw.
verinnerlichen.

Ich könnte jetzt hier 2 Seiten darüber schreiben, aber die Infos bekommst du auch im Netz. Es gibt zig Beispiele und auch WebCasts dazu und wir mussten das auch lernen.

Eine gute Seite unter vielen anderen mit Beispielen ist auch http://www.gssg.de

Kurz gesagt...
Um ein Dataset oder eine Datatable zu füllen brauchst du eine DataAdapter.
Dieser wiederum benötigt entweder die direkte Zuweisung einer Connection und einen
Command (Select) oder ein separates Command Objekt dem eine Connection
und ein Command zugewiesen ist.

Wenn du den ganzen Code als Projekt postest wird er Fehler hier sicher gefunden,
aber helfen wird dir das wenig, da du es (noch) nicht verstehst.

Gruß
Jens
 
Zurück