Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

C# : Bearbeiten eines Datensatzes in einem DataSet

Empfohlene Antworten

Veröffentlicht

Hallo zusammen,

kann mir jemand bei folgendem Problem helfen:

Habe ein DataSet aus einer XML-Datei ausgelesen.

testDataSet = new DataSet();

testDataSet.ReadXml(AdresseDerXmlDatei);

Will jetzt einzelne Zellen bearbeiten und dann aktualisieren und wieder in die XML-Datei abspeichern.

testDataSet.Tables[0].Rows[0].BeginEdit();

Zuweisung des neuen Inhaltes:

testDataSet.Tables[0].Rows[0].ItemArray[1] = "test";

testDataSet.Tables[0].Rows[0].AcceptChanges();

testDataSet.Tables[0].Rows.EndEdit();

Überprüfung der Änderung:

string hallo = testDataSet.Tables[0].Rows[0].ItemArray[1].ToString();

Schreiben der XML-Datei:

testDataSet.WriteXml(AdresseDerXmlDatei);

Problem: der string hallo zeigt immer noch die alten Daten an und nicht "test".

Änderungen werden nicht akzeptiert.

Kann mir jemand sagen was ich falsch mache??

Mr. Tommes

Halllo auch,

ich bin mir nicht ganz sicher, da ich in dieser Form mit einem DataSet noch nicht gearbeitet habe, aber ich denke, dein Problem ist der ItemArray.

Probiere statt

testDataSet.Tables[0].Rows[0].ItemArray[1] = "test";
mal folgendes:
testDataSet.Tables[0].Rows[0].Item[x] = "test";

"x" ist hierbei der nullbasierende Feldindex.

Theoretisch würdest du so von dem ersten Datensatz ("Rows[0]") das x-te Feld verändern.

Gruß,

whisper

  • Autor

Hi,

danke für den Tipp, jedoch kann ich kein Item ansprechen. Nur das ItemArray.

Habe das Problem jetzt auf andere Weise gelöst.

Habe eine neue leere Reihe in dem Dataset erzeugt und belege die einzelnen

ItemArrays neu. Das klappt. Danach entferne ich die zu ändernde Reihe und

ersetze diese dann durch die neue Reihe mit den geänderten Werten an dieser

Stelle. Das klappt dann.

Mr. Tommes

Hm, auch eine Methode :o)

Wundert mich allerdings, das du kein Item zur Verfügung hast - hab hier ebenso Visual Studio.NET und dort ist die Eigenschaft enthalten.

Eventuell liegt's an der .NET Framework-Version (ich habe hier 1.1 drauf), aber das wage ich zu bezweifeln. Soweit ich mich erinnern kann, gibt's von MS auch ein Update für die Datenzugriffs-Komponenten von .NET, aber es kann sein, das ich da grad was durcheinanderbringe.

Auf jeden Fall ist gut, das es jetzt funktioniert :o)

Gruß,

whisper

  • Autor

Hi,

habe grad mal nachgeguckt, habe das Framework 1.0.3705 installiert und soweit

mir bekannt ist wurde noch nie ein Update eingespielt. Ich weiss, dass man bei VB

das Item ansprechen kann, bei C# steht jedoch auch in der Hilfe, dass man das mit

dem ItemArray macht. Jedoch steht da auch bei "Datensätze ändern" folgendes:

dataset1.Tables[0].Rows[4].ItemArray[0] = "wingtip Toys"

Damit sollte es klappen (laut Visual Studio .Net Hilfe) !

Tut es nur leider nicht...

Noch was anderes: hast du nen Link, wo ich das aktuelle Framework runterladen

kann ?

Mr. Tommes

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.