100分求:如何判断 DataGridView 行状态?我想在提交时,判断一下DataGridView里所有行是什么状态(被修改、新加行、保持原样)

zhouge_IT 2009-01-08 02:10:58
如何判断 DataGridView 行状态?我想在提交时,判断一下DataGridView里所有行是什么状态(被修改、新加行、保持原样)
请大家贴出源码,谢谢!~~~
...全文
1236 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
yujinlong 2011-10-26
  • 打赏
  • 举报
回复
uop
z331499778 2010-01-19
  • 打赏
  • 举报
回复
你就不需要判断.直接调用
sqldataadapter.update(datatable)方法即可.他会自动根据你的行状态去调用相应的语句.

如:
你原有的数据,在调用update后不会改变
你修改过的数据在调用update方法后会调用相应的updatecommand来执行update操作
你新录的数据此时行状态会是Added,调用update方法后会调用相应的insertcommand来执行insert操作.

所以你的顾虑是多余的,你只要为sqldataadapter设置相应的insert,update...等等command就够了.

up
homejiji 2009-05-01
  • 打赏
  • 举报
回复
mark
sushou2009 2009-05-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zetee 的回复:]
DataGridView 没有状态,有状态的是数据源。所以DataSet状态就有
[/Quote]
UP!查看数据源dataset的状态 比如里面datatable的
yangjiang113 2009-05-01
  • 打赏
  • 举报
回复
关注中。。。。帮顶
lovehongyun 2009-01-09
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 zhouhuawei_517 的回复:]
我刚试过了,用olddbdatadapter.update(datatable)可以
不过我用的是access数据库,也没有采用olddbdatadapter,采用的是sql查询后的数据集,然后绑定到控件,该如何实现呢?
[/Quote]
道理是一样的.olddbdatadapter.update()的参数只是一个datatable,
而不管你怎么折腾,最终只要给他一个datatable,他就会按你的行状态去执行相应的command
zhouge_IT 2009-01-08
  • 打赏
  • 举报
回复
我刚试过了,用olddbdatadapter.update(datatable)可以
不过我用的是access数据库,也没有采用olddbdatadapter,采用的是sql查询后的数据集,然后绑定到控件,该如何实现呢?
mawering 2009-01-08
  • 打赏
  • 举报
回复
帮顶了!
lq20051610211 2009-01-08
  • 打赏
  • 举报
回复
路过~
HDNGO 2009-01-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zetee 的回复:]
DataGridView 没有状态,有状态的是数据源。所以DataSet状态就有
[/Quote]

UP~
xiaxy1 2009-01-08
  • 打赏
  • 举报
回复
恩,在插入数据sqldataadapter.update(datatable)就判断数据库中是否存在这种数据,存在就提示 不添加或更新数据库,不存在就加到数据库中
lovehongyun 2009-01-08
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 zhouhuawei_517 的回复:]
我在DataGridView控件中录入数据,因为有的数据是存在的,不需要再次插入到数据库,而有的数据是新增的(入库),有的是修改的(在数据库中修改),所以要判断行的状态,如何做到?请各位大侠贴出源码,谢谢!~~
[/Quote]

你就不需要判断.直接调用
sqldataadapter.update(datatable)方法即可.他会自动根据你的行状态去调用相应的语句.

如:
你原有的数据,在调用update后不会改变
你修改过的数据在调用update方法后会调用相应的updatecommand来执行update操作
你新录的数据此时行状态会是Added,调用update方法后会调用相应的insertcommand来执行insert操作.

所以你的顾虑是多余的,你只要为sqldataadapter设置相应的insert,update...等等command就够了.
zhouge_IT 2009-01-08
  • 打赏
  • 举报
回复
楼上的师兄,我知道有这个方法,那如何判断哪一行是修改后的呢?
冷月孤峰 2009-01-08
  • 打赏
  • 举报
回复
DataGirdView只有个IsNewRow属性:
dgvData.Rows[dgvData.CurrentCell.RowIndex].IsNewRow
一般可以获取数据源的状态
zhouge_IT 2009-01-08
  • 打赏
  • 举报
回复
我在DataGridView控件中录入数据,因为有的数据是存在的,不需要再次插入到数据库,而有的数据是新增的(入库),有的是修改的(在数据库中修改),所以要判断行的状态,如何做到?请各位大侠贴出源码,谢谢!~~
lovehongyun 2009-01-08
  • 打赏
  • 举报
回复
有个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;
}
Ny-6000 2009-01-08
  • 打赏
  • 举报
回复
同意楼上
lovehongyun 2009-01-08
  • 打赏
  • 举报
回复
判断DataTable的
GTX280 2009-01-08
  • 打赏
  • 举报
回复
数据源DataTable中每行DataRow的RowState属性
bigtime_guo 2009-01-08
  • 打赏
  • 举报
回复
dataset有状态
加载更多回复(6)

111,130

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧