Announcement

Collapse
No announcement yet.

Dynamische SQL-Generierung für UpdateCommand

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

  • Dynamische SQL-Generierung für UpdateCommand

    Hallo alle zusammen,

    ich komme überhaupt nicht weiter. Ich möchte einfach nur meine Tabelle Updaten leider bekomme ich bei jeder Variante, die ich ausprobiert habe die selbe Fehlermeldung:

    Dynamische SQL-Generierung für den UpdateCommand wird nicht für einen SelectCommand unterstützt, der keine Schlüsselspalteninformationen zurückgibt.

    Die Methode ist eigentlich recht simpel ich verstehe einfach nicht warum sie nicht funktioniert. Es währe sehr nett wenn mir jemand Helfen könnte.

    Code:
    Code:
       SqlConnection connection = new SqlConnection(connectionString);
                SqlDataAdapter adapter = new SqlDataAdapter(
                  "SELECT * FROM tblBenutzer", connection);
                SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
                builder.QuotePrefix = "[";
                builder.QuoteSuffix = "]";
    
                DataSet custDS = new DataSet();
    
                connection.Open();
                adapter.Fill(custDS, "tblBenutzer");
    
                custDS.Tables["tblBenutzera"].Rows[0][2] = "TEST";
                custDS.Tables["tblBenutzera"].PrimaryKey = new DataColumn[] { custDS.Tables["tblBenutzera"].Columns["ID"] };
    
                adapter.Update(custDS, "tblBenutzer");
                connection.Close();
    Dakeschön.

    Beste grüße,
    Cebrail.

  • #2
    Hallo Cebrail,

    Wenn du in deiner DB die 'ID' Spalte als PrimaryKey definiert hast, duerfte es zu keinen Problemen kommen - ist das bei dir der Fall?

    Wenn ja, dann brauchst du die Zeile mit '...PrimaryKey = new ...' nicht mehr
    Wenn nein, warum kannst du die 'ID' nicht als PK in der DB definieren?
    *-- robert.oh. --*

    Comment


    • #3
      Hallo robert.oh.,

      danke für die schnelle Antwort. Die ID ist in der Datenbank als PrimaryKey definiert. Auch ohne die Zeile mit '...PrimaryKey = new...' bekomme ich dieselbe Fehlermeldung.

      Comment


      • #4
        Ich hab mir mal einen meiner Beispielcodes zu diesem Thema herausgesucht. Darin mache ich es so:

        Code:
        // CommandBuilder entspricht deinem builder
        this.CommandBuilder.RefreshSchema();
        // DataAdapter entspricht deinem adapter
        this.DataAdapter.UpdateCommand = this.CommandBuilder.GetUpdateCommand();
        this.DataAdapter.Update(dataSetToSave);
        Der Code ist leiner nur sporadisch mit Kommentaren versehen, darum kann ich dir nicht mehr genau sagen, warum ich was wie und warum gemacht habe.

        Vielleicht hilft dir das weiter.
        *-- robert.oh. --*

        Comment


        • #5
          Hallo robert.oh.,

          Dankeschön noch mal. Leider klappt es so auch nicht. Immer noch dieselbe Fehlermeldung.
          Jetzt bekomme ich die Fehlermeldung bei: adapter.UpdateCommand = builder.GetUpdateCommand();

          Code:
                  SqlConnection connection = new SqlConnection(connectionString);
                  SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM tblBenutzer", connection);
                  SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
                  DataSet custDS = new DataSet();
          
                  connection.Open();
                  adapter.Fill(custDS, "tblBenutzera");
          
                  custDS.Tables["tblBenutzera"].Rows[0][2] = "TEST";
                  //custDS.Tables["tblBenutzera"].PrimaryKey = new DataColumn[] { custDS.Tables["tblBenutzera"].Columns["ID"] };
          
                  builder.RefreshSchema();
                  adapter.UpdateCommand = builder.GetUpdateCommand();
                  adapter.Update(custDS, "tblBenutzer");
                  connection.Close();

          Comment


          • #6
            Schön, dass Du in mindestens drei Foren den Hinweis auf den PrimaryKey abfragst - hier und dort:
            myCSharp.de
            c-sharp-forum
            Ich liebe diese Mehrfach-Posts, wenn immer wieder Helfer Antworten geben, die anderswo schon zu lesen sind. Jürgen

            Comment

            Working...
            X