社区
C#
帖子详情
DataRow.Delete()
wangjingjing390
2003-04-22 08:08:10
各位好,我在代码中找到了一条DataRow,执行了
DataRow.Delete();
DataSet.AcceptChanges();
DataAdapter.Update(...);
这几条语句后,发现数据并没有从数据库中删除掉
只好依靠DataAdapter.DeleteCommand.ExcuteNonquery()来删除
可是好多C#书上的例子都是这么删数据的
请大家指教一下我上面的代码为什么删不了数据
...全文
110
6
打赏
收藏
DataRow.Delete()
各位好,我在代码中找到了一条DataRow,执行了 DataRow.Delete(); DataSet.AcceptChanges(); DataAdapter.Update(...); 这几条语句后,发现数据并没有从数据库中删除掉 只好依靠DataAdapter.DeleteCommand.ExcuteNonquery()来删除 可是好多C#书上的例子都是这么删数据的 请大家指教一下我上面的代码为什么删不了数据
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
aviscool
2003-04-22
打赏
举报
回复
DataSet.AcceptChanges();这句话将DataRow的状态改变为Unchanged,
所以使用DataAdapter.Update(...)这句话更新DataSet的时候,认为所有的记录都没有变化,自然不会更新了。因此去掉DataSet.AcceptChanges();就可以了,何况DataAdapter.Update(...)也会在更新结束后执行AcceptChanges()操作
collbull
2003-04-22
打赏
举报
回复
netpot说的很对,
你把Ds1.AcceptChanges()可以不要,因为用了 sqlDataAdapter1直接更新的话,
系统会自动调用 AcceptChanges(),所以不用显示的调用,
如果要用sqlCommand 更新就要显示的调用,
即使要调用也应该放在 sqlDataAdapter1.Update(Ds1); 后面。
wangjingjing390
2003-04-22
打赏
举报
回复
回班门斧:
CurrencyManager cm;
cm=(CurrencyManager)dataGrid1.BindingContext[dataGrid1.DataSource];
DataRowView drv;
drv =(DataRowView)cm.Current;
DataRow myDataRow = drv.Row;
myDataRow.Delete();
Ds1.AcceptChanges();
sqlDataAdapter1.Update(Ds1);
netpot
2003-04-22
打赏
举报
回复
Adapter在执行update的时候是根据DataRow的RowState来决定如何对数据源进行更新的
执行DataRow.Delete(),RowState变成了deleted,那么执行update就会对数据源进行相应的删除操作。如果RowState为modified执行更新,是Adder(new Row)执行添加。
而若执行delete后进行AcceptChanges,那么所以的dataRow的RowState都变成了unchanged,那么就不会对数据源进行任何更新。
另外当执行了Adapter 的Update后,会自动调用AcceptChange方法的
erictang2003
2003-04-22
打赏
举报
回复
试试
SqlCommandBuilder commandBuilder = new SqlCommandBuilder( dataAdapter );//重要!
DataRow.Delete();
DataAdapter.Update(...);
DataSet.AcceptChanges();// 放到最后!
TheAres
2003-04-22
打赏
举报
回复
你给举一个例子吧。
Datatable删除行的
Delete
和Remove方法的区别介绍
•使用DataTable.Rows.Remove(
DataRow
),或者DataTable.Rows.RemoveAt(index);可以直接删除行•datatable.Rows[i].
Delete
()。
Delete
()之后需要datatable.AccepteChanges()方法确认完全删除,因为
Delete
()只是将相应...
C#中DataTable删除行的方法分析
2、dtTemp.Rows[gvSummary.FocusedRowHandle].
Delete
(); dtTemp.AcceptChanges(); 在C#中,如果要删除DataTable中的某一行,大致有以下几种办法: 1.如果只是想删除datatable中的一行,可以用Data
C# datatable 不能通过已删除的行访问该行的信息处理方法
如果要彻底删除
datarow
,需要
Delete
()和AccepteChanges()方法同时使用,或者采用datatable.Rows.RemoveAt(i)方法直接删除, 其中i表示行索引,还有一个就是datatable.Rows.Remove(
DataRow
dr)删除指定行。...
MysqlDLL,C#操作MYSQL数据库
Update(
DataRow
[])//通过为 DataSet 中的指定数组中的每个已插入、已更新或已删除的行执行相应的 INSERT、UPDATE 或
DELETE
语句来更新数据库中的值 Update(DataSet)//通过为指定的 DataTable 中的每个已插入、...
C#获取变更过的DataTable记录的实现方法
本文实例讲述了C#获取...1)Detached:未被附加(一般刚创建的
DataRow
,或者已经被Remove或者RemoveAt,或者
Delete
之后调用过AcceptChanges方法的行,或者是WinForm控件DataGridView默认设置下最后那个永远也留出的空
C#
110,502
社区成员
642,567
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章