C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Then: Allow Visual Studio to create a method: press tab twice. You can edit the contents of that method to perform nearly any action.
Caution: You cannot change a DataRow within RowChanged. This is prohibited. In RowChanged we must check values or call other methods.
Output: In the output, we see that table_RowChanged is triggered four times. It is called each time a cell in a row changes.
Info: We changed the "Dosage" cell repeatedly on the rows. We print this in table_RowChanged.
C# program that uses RowChanged, DataTable
using System;
using System.Data;
class Program
{
    static void Main()
    {
        DataTable table = new DataTable();
        // ... Unique id.
        table.Columns.Add("Id", typeof(int));
        table.Columns["Id"].Unique = true;
        table.Columns.Add("Dosage", typeof(int));
        table.Columns.Add("Drug", typeof(string));
        table.Columns.Add("Patient", typeof(string));
        // ... Five DataRows.
        table.Rows.Add(1, 25, "Evista", "Lundberg");
        table.Rows.Add(2, 50, "Adcirca", "Jeffries");
        table.Rows.Add(3, 10, "Glucagon", "Johnson");
        table.Rows.Add(4, 20, "Amyvid", "Skinner");
        table.Rows.Add(5, 80, "Alimta", "Nguyen");
        table.AcceptChanges();
        // ... Handle RowChanged.
        table.RowChanged += table_RowChanged;
        // ... Change a row.
        table.Rows[0]["Dosage"] = 50;
        table.Rows[0]["Dosage"] = -1;
        // ... Pause.
        Console.WriteLine("[Press enter]");
        Console.ReadLine();
        table.Rows[0]["Dosage"] = 15;
        table.Rows[1]["Dosage"] = 800;
    }
    static void table_RowChanged(object sender, DataRowChangeEventArgs e)
    {
        Console.WriteLine("... Changed:  " + (int)e.Row["Dosage"]);
    }
}
Output
... Changed:  50
... Changed:  -1
[Press enter]
... Changed:  15
... Changed:  800
Tip: We can use RejectChanges and AcceptChanges to process changes to the DataTable contents.
And: The RowChanged and RowChanging events may be helpful in this style of code. ColumnChanged and ColumnChanging are also available.
Event