Datenbankabfragen ausführen
-
Hallo erstmal,
eventuell ist es eine sehr dumme Frage, aber ich habe ein Problem. Ich muss für die Schule ein Programm schreiben, in dem Daten aus einer eingebundenen Access-Datenbank ausgelesen werden. Das ganze in Visual Studio.
Ich habe nun über die DataGridView eine Access-DB eingefügt und über "Abfrage hinzufügen" diverse Abfragen an die Datenbank erstellt. Er soll nur nen bestimmten Wert aus der Tabelle ausgeben, von der Zeile, die markiert ist. Die Abfrage stimmt auch soweit.
Nun komme ich allerdings nicht weiter, wie ich diese Abfrage aus dem Quellcode hinaus aufrufen kann?!? Die Abfrage lautet zB WaehleStunden() . Zu sehen ist diese im stundenplanDataSet.xsd unter stundenTableAdapter. Doch wie führe ich die Abfrage aus, wenn ich zB auf einen Button klicke???
Ich hoffe mir kann dabei einer helfen...
Die erweiterte Version davon ist, wie er unterschiedliche Abfragen ausführt, je nachdem welche Zeile markiert ist?
Ich bin um jeden Rat dankbar, denn die Zeit drängt leider...
-
So recht verstehe ich Dein Vorhaben nicht (eventuell zu schnell gelesen ?)
Du kannst einen OleDbAdapter auf die Form ziehen und diesen Konfigurieren. Wenn Du dann die SQL erstellst, siehst Du alle Tabellen und Views die angelegt sind. Diese kannst Du dann bequem verwenden.
Alternativ kannst Du den Adapter auch manuell mit einem OleDbCommand und der SQL Abfrage füttern.
-
Danke erstmal für die Antwort. Habe es jetzt hinbekommen, dass die Abfrage ausgeführt wird.
Leider habe ich damit ein weiteres Problem. Das ergebnis der Abfrage ist eigentlich ein Double-Wert, auch der "ReturnValue" wird als Double angegeben. Wie bekomme ich den in eine Variable?
Wenn ich einfachdouble xxx; xxx = stundenTableAdapter->WaehleStunden();
eingebe bekomme ich folgende Fehlermeldung:
1>c:\stundenplan\stundenplan\Form1.h(591) : error C2440: '=': 'System::Nullable<T>' kann nicht in 'double' konvertiert werden
1> with
1> [
1> T=double
1> ]
1> Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werdenKann mir da einer helfen? Kenne mich in Sachen Datenbanken Null aus, muss es aber leider machen...
-
Deklariere Deine Variable so:
Nullable<double> xxx;
-
Bitte überlesen. Habs hinbekommen, war nur scheinbar vorher zu müde zum nachdenken
-
Naja, so klappts auch:
double xxx; xxx = stundenTableAdapter->WaehleStunden().Value;
Trotzdem danke!
-
Ist aber ein wenig gefährlich, da in der Datenbank auch eine "NULL" drinstehen könnte, und dann stürtzt Dein Programm ab!!!
-
Ok, danke für den Hinweis. Werde mir das zu Herzen nehmen und deine Version benutzen!