ich habe ein Problem mit dem ich mich schon jetzt seit meheren Stunden rum ärgere und ich leider auch noch keine brauchbare Lösung dazu finden konnte.
In meinem Projekt baue ich eine Verbindung zu einer MySQL-Datenbank(Oracle) auf. Dies bewerkstellige ich über eine Verbindung des ODBC-Treibers. Nachdem anlegen der Verbindung im Studio, ziehe ich mir meine Tabellen per Drag & Drop über den Server-Explorer in mein DataSet. Die Kommunikation klappt auch soweit, das heist ich kann mir beliebige "Select" Abfragen estellen usw.
Jedoch werden die Insert-, Update-, Deletes-Anweisungen nicht automatisch generriert wie ich es vom arbeiten mit dem MS-SQL-Server gewohnt bin !?!?!?!....
und dies obwohl ich explizit den nötigen Schalter in den "Erweiterten Einstellungen" des beliebigen TableAdapters gesetzt habe. (Dieser Schalter setzt sich merkwürdiger Weise beim nächsten Öffnen der Einstellung wieder auf false!!!)
Dieses Problem ist angeblich bekannt, nur alle Lösungsansätze und Hinweise sind bei mir vergebens. Auch der Hinweis mit nicht vorhandenen PK im DataTable, die sind bei mir vorhanden!
Natürlich könnte ich meine UPDATES-Commands auch selber schreiben aber dieser Ansatz kommt für mich nicht in Frage !!!!! Dies vllt auch, weil ich in der Hinsicht mit Linq ein bischen verwöhnt bin
Dennoch würde ich gern bezüglich der Aussage rein aus Interesse wissen: Warum rätst du davon ab?
Technisch, weil jede Verwendung des CommandBuilders zu einer unnötigen Abfrage auf die Datenbank führt (siehe dazu meinen Post in dem anderen Thread.).
Ansonsten bin ich kein Freund von Client-Anwendungen die sehr SQL nah arbeiten. Ich finde es sauberer, entweder einen O/R-Mapper zu verwenden oder aber wirklich auf Stored Procedures zu setzen.
Auf den Ansatz mit dem MySQL Provider bin auch auch schon gestoßen...letzendlich kann
ich mich damit jedoch nicht anfreunden, da ich da nicht die möglichkeit habe typisiert zu Arbeiten (DataSets,Tables, Rows )....oder liege ich da etwa war falsch ???
Leider habe ich auch keine andere wahl, dies mit der ODBC-Verbindung abzuwickeln. Ich kann und will mich mit hartcodierten SQL-Anweisungen im Quellcode nicht anfreunden von daher ist dies keine Lösungsansatz für mich.
Aber vieleicht liege ich mit meiner Annahme aber auch falsch !?!
Auf den Ansatz mit dem MySQL Provider bin auch auch schon gestoßen...letzendlich kann ich mich damit jedoch nicht anfreunden, da ich da nicht die möglichkeit habe typisiert zu Arbeiten (DataSets,Tables, Rows )....oder liege ich da etwa war falsch ???
Ich denke schon (dass Du falsch liegst). Wieso sollte man keine typisierten DS benutzen können ?
Zitat
Leider habe ich auch keine andere wahl, dies mit der ODBC-Verbindung abzuwickeln.
ODBC ist immer die schlechteste aller Lösungen : altmodisch, langsam, unflexibel.
Commandbuilder benutze ich oft mit MS SQL, MySQL und anderen Datenbanken, hat bisher immer geklappt. Commandbuilder mit ODBC habe ich allerdings noch nicht benutzt.
Grüße Bernd
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von BerndFfm am .
ok dann habe ich da was falsch verstanden. Also wie gesagt möchte ich gerne mit meinem DataSet und vorallem den TableAdaptern weiterarbeiten.
Also ist meine Frage, wie bekomme ich das hin(sei es mit dem Commandbuilder oder mit was auch immer) das ich den Befehl :
TableAdapter.Update(DataTable);
benutzen kann ??
Weil diese "Update" Methode ja nicht automatisch wie sonst generriert wird !
Und vor allem würde mich mal interesieren, was genau die Ursache dafür ist, dass die Anweisungen (Insert,Delete,Update) nicht automatisch generiert werden ???
letzendlich kann ich mich damit jedoch nicht anfreunden, da ich da nicht die möglichkeit habe typisiert zu Arbeiten (DataSets,Tables, Rows )
Typisierte DataSets sind nicht wirklich typisiert. Das sind nur Property-Fassaden auf eine untypisierte DataRow (sorry Bernd, nur meine Meinung ;) ).
Allerdings kannst du das DataSet ja mit jedem beliebigen DB Provider, also natürlich auch dem nativen MySQL Provider, verwenden.
@Bernd:
Hi :)
Ich glaube es geht b.wayne um eine Designer-Unterstützung um das typisierte DataSet mit dem MySQL Provider zu verheiraten. Da bin ich blank, vielleicht kannst du da aber weiterhelfen.