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