Einzelnes Feld einer DataSet.Tables[""] editieren



  • Hallo ihr,
    wie kann ich programmgesteuert eine einzelne Zelle einer Tabelle im Dateset editieren. Ich bin mir nicht im klaren darüber wie ich über Columns und Rows an die einzelne Zelle komme, um deren Inhalt zu verändern. Also ich habe dataSetBla.Tables["Blubb"] mit 5 columns und in jeder row will ich eine bestimmte Column verändern.
    Wie kann ich das realisieren?
    Liebe Grüße
    Basti





  • Danke 🙂

    Ich habe mir das angeschaut und im Prinzip will ich ja nur den angezeigten Index meiner Tabelle neu indexieren, wenn eine Zeile gelöscht wurde.
    Mein Code:

    private void dataGridView1_UserDeletedRow(object sender, DataGridViewRowEventArgs e)
            {
                Int32 i = 1;
                foreach (DataRow ThisRow in dsPositionen.Tables["dtPositionen"].Rows)
                    {
                        ThisRow[0] = i;
                        MessageBox.Show(ThisRow.ToString());
                        MessageBox.Show(ThisRow[0].ToString());
                        ThisRow.AcceptChanges();
                        i = i + 1;
                    }
    
            }
    

    Das funktioniert auch, beim 2. Versuch bekomme ich leider die Exception System.Data.DeletedRowInaccessibleException. Ich weis auch leider nicht genau woher das rürt. Wenn ich es im DataGridView lösche, wird es ja auch in der DataTable des DataSets gelöscht.
    Nur irgendwie versucht er nach dem Löschen einer zweiten Row auf eine Row zuzugreifen die offensichtlich nicht mehr existiert.
    Weis jemand woran das liegen könnte?
    Liebe Grüße
    - Basti



  • Ich habe auch irgendwie das Gefühl, dass wenn ich im DataGridView eine komplette Row herauslösche, dass dies mit der DataTable nicht abgeglichen wird bzw. dass die Datensätze nicht endgültig aus der Tabelle verschwinden.
    Kann jemand dazu was sagen?

    Liebe Grüße
    - Basti


Anmelden zum Antworten