有个RowState属性,可以通过他来判断例子: private void DemonstrateRowState() { // Run a function to create a DataTable with one column. DataTable table = MakeTable(); DataRow row;
// Create a new DataRow. row = table.NewRow(); // Detached row. Console.WriteLine("New Row " + row.RowState);
table.Rows.Add(row); // New row. Console.WriteLine("AddRow " + row.RowState);
private DataTable MakeTable() { // Make a simple table with one column. DataTable table = new DataTable("table"); DataColumn dcFirstName = new DataColumn( "FirstName", Type.GetType("System.String")); table.Columns.Add(dcFirstName); return table; }
然后在最后在这个DataTable里判断数据的变化
绑定的数据源,如果是DataTable的话,DataRow有RowState属性同意。
这个?
private void DemonstrateRowState()
{
// Run a function to create a DataTable with one column.
DataTable table = MakeTable();
DataRow row;
// Create a new DataRow.
row = table.NewRow();
// Detached row.
Console.WriteLine("New Row " + row.RowState);
table.Rows.Add(row);
// New row.
Console.WriteLine("AddRow " + row.RowState);
table.AcceptChanges();
// Unchanged row.
Console.WriteLine("AcceptChanges " + row.RowState);
row["FirstName"] = "Scott";
// Modified row.
Console.WriteLine("Modified " + row.RowState);
row.Delete();
// Deleted row.
Console.WriteLine("Deleted " + row.RowState);
}
private DataTable MakeTable()
{
// Make a simple table with one column.
DataTable table = new DataTable("table");
DataColumn dcFirstName = new DataColumn(
"FirstName", Type.GetType("System.String"));
table.Columns.Add(dcFirstName);
return table;
}
dgvData.Rows[dgvData.CurrentCell.RowIndex].IsNewRow
一般可以获取数据源的状态
你就不需要判断.直接调用
sqldataadapter.update(datatable)方法即可.他会自动根据你的行状态去调用相应的语句.如:
你原有的数据,在调用update后不会改变
你修改过的数据在调用update方法后会调用相应的updatecommand来执行update操作
你新录的数据此时行状态会是Added,调用update方法后会调用相应的insertcommand来执行insert操作.所以你的顾虑是多余的,你只要为sqldataadapter设置相应的insert,update...等等command就够了.
不过我用的是access数据库,也没有采用olddbdatadapter,采用的是sql查询后的数据集,然后绑定到控件,该如何实现呢?
而不管你怎么折腾,最终只要给他一个datatable,他就会按你的行状态去执行相应的command
sqldataadapter.update(datatable)方法即可.他会自动根据你的行状态去调用相应的语句. 如:
你原有的数据,在调用update后不会改变
你修改过的数据在调用update方法后会调用相应的updatecommand来执行update操作
你新录的数据此时行状态会是Added,调用update方法后会调用相应的insertcommand来执行insert操作. 所以你的顾虑是多余的,你只要为sqldataadapter设置相应的insert,update...等等command就够了.up