Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
ODBC MySQL - DataSet- TableAdapter - Keine Insert-, Update-, Deletes-Commands ?
b.wayne
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

ODBC MySQL - DataSet- TableAdapter - Keine Insert-, Update-, Deletes-Commands ?

beantworten | zitieren | melden

verwendetes Datenbanksystem: ODBC- MySQL

.Net Framework 2.0

Hallo,

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

Danke schon mal im Voraus !

greetz
private Nachricht | Beiträge des Benutzers
Florian Reischl
myCSharp.de - Experte

Avatar #avatar-2880.jpg


Dabei seit:
Beiträge: 1.564
Herkunft: München

beantworten | zitieren | melden

Hallo b.wayne

Ein sehr ähnliches Thema hatten wir gerade erst:
UPDATE mit einer Spalte 'Plan' läuft auf Fehler

Wenn du auf den nativen MySQL Provider wechselst dürfte der Command-Builder funktionieren.

Grundsätzlich rate ich aber vom Command-Builder ab.

Grüße
Flo
Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+

Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.
private Nachricht | Beiträge des Benutzers
Nitro2k7
myCSharp.de - Member

Avatar #avatar-2881.jpg


Dabei seit:
Beiträge: 276
Herkunft: H

beantworten | zitieren | melden

Hallo Florian Reischl
Zitat von Florian Reischl
Grundsätzlich rate ich aber vom Command-Builder ab.

Ich beutze ihn auch ungern bzw. gar nicht. Dennoch würde ich gern bezüglich der Aussage rein aus Interesse wissen: Warum rätst du davon ab?

Gruss

nitro
private Nachricht | Beiträge des Benutzers
Florian Reischl
myCSharp.de - Experte

Avatar #avatar-2880.jpg


Dabei seit:
Beiträge: 1.564
Herkunft: München

beantworten | zitieren | melden

Hi Nitro2k7
Zitat von Nitro2k7
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.

Grüße
Flo
Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+

Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.
private Nachricht | Beiträge des Benutzers
b.wayne
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

beantworten | zitieren | melden

Hallo Florian Reischl,

danke erst einmal für deine Antwort.

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 !?!

grüße
private Nachricht | Beiträge des Benutzers
BerndFfm
myCSharp.de - Team

Avatar #nZo9Gyth4VPDSxGqM4sT.jpg


Dabei seit:
Beiträge: 3.811
Herkunft: Frankfurt a.M.

beantworten | zitieren | melden

Zitat
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 .
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
private Nachricht | Beiträge des Benutzers
b.wayne
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

beantworten | zitieren | melden

Hallo Bernd,

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 ???

danke

grüße
private Nachricht | Beiträge des Benutzers
BerndFfm
myCSharp.de - Team

Avatar #nZo9Gyth4VPDSxGqM4sT.jpg


Dabei seit:
Beiträge: 3.811
Herkunft: Frankfurt a.M.

beantworten | zitieren | melden

Ich kenne beim Verhalten des CommandBuilders keinen Unterschied zwischen MS SQL und MySQL.

Hier ein Beispiel von mir : http://www.seven-c.de/files/datenbankenhowto.htm#6

Kapitel 6 "Daten ändern"

Hier kann man die Sql-Befehle direkt ersetzen mit MySql-Befehlen, oder besser mit Db-Befehlen (siehe Kapitel 11).

Grüße Bernd
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von BerndFfm am .
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
private Nachricht | Beiträge des Benutzers
Florian Reischl
myCSharp.de - Experte

Avatar #avatar-2880.jpg


Dabei seit:
Beiträge: 1.564
Herkunft: München

beantworten | zitieren | melden

Zitat von b.wayne
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.

Grüße
Flo
Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+

Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.
private Nachricht | Beiträge des Benutzers