Announcement

Collapse
No announcement yet.

MySQL Abfrage mit Parametern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • MySQL Abfrage mit Parametern

    Guten Tag,
    ich habe da eine Frage zu MySQL und c#.
    Ich bin eigentlich Delphianer und da geht das mit den Datenbanken echt viel einfacher, aber was soll es.
    Ich will eine Tabelle mit ca 40 Spalten updaten und das sehr oft. Also bietet sich eine parametrisierte Anweisung an. In Delphi no problem, aber ich muss c# anwenden. Ich hatte es mir so gedacht, dass ich eine Abfrage wie etwa
    Code:
    select * from Table where id = -1
    Damit erhalte ich eine leeres Ergebnis. Mit dieser Basis kann man in Delphi dann ein Insert bzw. Update machen. Das möchte ich, wenn möglich in c# nachbilden.
    Also habe ich ein MySQLCommand, MySQLDatareader und MySQL CommandBuilder genommen. Ich habe es geschaftf die einzelen Commandstrings zu bilden. Soweit so gut, aber wie kann ich automatisch die benötigten Parater der Commands erstellen lassen??

    Hat jemand so etwas schon einmal gemacht??

    Danke
    Danke Torsten

  • #2
    Ist das nicht eher eine Frage fürs c# Forum? Werde es mal verschieben...
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Ich bin eigentlich Delphianer und da geht das mit den Datenbanken echt viel einfacher, aber was soll es.
      Wie in Delphi programmieren geht tatsächlich in Delphi am besten
      Oder wie ich aus eigener Umsteigererfahrung sagen kann du verwechselst Gewohnheit mit Einfachheit.

      Wieso willst du erst mal einen select absetzen um dann doch bloß einen Insert zu bewerkstelligen? Das hört sich nach einer schlechten Angewohnheit an wenn man z.B in klassischem ADO nicht weiß wie man ein disconnected Recordset erzeugt.

      Wenn du ein Verhalten ähnlich einem Recordset(disconnected) willst wären die Datenbank Klassen die du dir ansehen solltest eher die mySQL Variante des DataAdapters im Zusammenspiel mit Datatable/Dataset.

      Für ADO.Net Themen siehe zum Beispiel auch das OpenBook. Die Folgekapitel nicht übersehen

      Comment


      • #4
        Guten Morgen Ralf,
        also "Faulheit bzw. Bequemlichkeit" lass ich mir nicht vorwerfen. Aber Delphi erleichtert einiges.
        Mit der Microsft Philosophie kann ich mich nicht anfreunden, schon gar nicht c#.
        Aber wenn es der Job so will.

        Git eseine Möglichkeit eine Parametrisierte Abfrag bei Programmstart zu erstellen und ab dann immer zu benutzen? Ich habe noch keinen weg gefunden.
        Danke Torsten

        Comment


        • #5
          also "Faulheit bzw. Bequemlichkeit" lass ich mir nicht vorwerfen.
          So war es auch nicht gemeint. Sorry, wenn du meine Bemerkung so aufgefasst hast. Aus eigener Erfahrung kenne ich aber die 'Beharrungskräfte' alte Vorgehensweisen über Bord zu werfen und durch neue zu ersetzen.
          Die sind eben nicht schlechter sondern erstmal nur anders.

          Gite seine Möglichkeit eine Parametrisierte Abfrag bei Programmstart zu erstellen und ab dann immer zu benutzen?
          Das was dem am ehesten entspricht wäre eine Tableadapter in einem typisierten Dataset. Im Dataset Designer kannst du das SQL deklarieren und dir wird dann dazu eine passende Methode mit der richtigen Parametersignatur am Tableadapter generiert.

          Comment


          • #6
            Grad bei größeren DBs mit vielen Tabellen würde ich aber vom DataSet abraten oder die Tabellen zumindest auf mehrere DataSets verteilen. Der Editor wird schnarchlangsam wenn man recht viele Tabellen hat. Ausserdem hatte ich teilweise ziemliche Probleme mit dem Ding. Der DataSet Designer ist echt mit Vorsicht zu genießen.

            Würde mich da eher Richtung Entity Framework oder Linq to sql begeben (alternativ auch NHibernate wenn mans Open Source mag)

            Sieht ja aus als portiert ihr ein Programm. Der Fehler der da sehr häufig gemacht wird ist, dass man das neue Programm genauso programmiert wie das alte und nur eine neue Programmiersprache verwendet die nun Wunder vollbringen soll. Hinterher ist das Chaos dann größer als vorher und dann ist die neue Programmiersprache schuld. Wenn das wirklich so sein sollte, dann müsst ihr euch von den alten Strukturen lösen und auf die Paradigmen einlassen die .NET und C# zu bieten hat (Domain Driven Design, Separation of Concerns, Inversion of Control...)

            Comment

            Working...
            X