2010-12-28 1 views
4

Ich verwende ADO.NET in meinem C# -Projekt. In meinem Formular habe ich ein SourceBinding-Element aus meiner Toolbox in VS2010 hinzugefügt. Ich stelle die Verbindung zu der Tabelle meines Datasets her. Es erstellt automatisch einen DataAdapter für meine.Einfügen Methode von TableAdapter funktioniert nicht?

Ich möchte einen Datensatz einfügen, also rufe ich die Insert() -Methode des DataAdapter. Aber wenn ich meine Daten in der Datenbank zu sehen, hat es keine neuen Aufzeichnungen ...

orderID = this.orderTableAdapter.Insert("", "", 
       (int)OrderStatus.IN_CONSTRUCTION, DateTime.Now); 

Oder muss ich es einfügen manuell mit dem SqlCommand ???

Antwort

2

Die Tabellenadapter wurden für die Verwendung mit einem Dataset entwickelt, damit Sie mit diesem Dataset Daten in die Datenbank hinein und aus ihr herausholen können.

Idee ist, dass Sie die Dataset.NewYourTableNameRow() verwenden können, um eine neue Zeile für Ihr Dataset zu erstellen, füllen Sie dann seine Felder und rufen Sie dann DataSet.AddYourTableNameRow(row), um es in das Dataset einzufügen.

Jetzt können Sie orderTableAdapter.update(DataSet) diese neue Zeile in die Datenbank übertragen.

Um eine Zeile zu löschen oder zu aktualisieren, wählen Sie sie zuerst in Ihrer Datenmenge aus, führen eine Änderung am Objekt durch und rufen dann die .update (ds) auf dem entsprechenden Tabellenadapter auf, um sie zurückzusenden.

+0

Ja, aber dieses Update() bleibt nicht in der Datenbank ... Wenn ich abrufen Daten der Datenbank, es ist leer. –

+0

Ist die Verbindungszeichenfolge korrekt? Ich hatte in der Vergangenheit Probleme, wo die Verbindungszeichenfolge die Datenbank immer noch auf die Testdatenbank anstatt auf die Live-Datenbank richtete. – Spence

4

Ich hatte auch Schwierigkeiten, dies herauszufinden.

Sie müssen DataSet.AcceptChanges() nach dem TableAdapter.Insert(...)

nennen, die für mich gearbeitet.

So sind die Schritte:

  1. Erstellen Sie Ihre Binding, Table und Daten-Set visuelle Studio.
  2. TableAdapter.Fill(..) // dies automatisch durch vs.
  3. TableAdapter.Insert(..)
  4. DataSet.AcceptChanges()
  5. hinzugefügt werden sollte TableAdapter.Update(..)