• 全部
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

dataset中删除记录的问题

luck2050 2004-10-28 05:30:40
我用这个语句删除掉dataset1中的第i行
dataset1.Tables[0].Rows[i].Delete();
然后
textbox1.text=dataset1.Tables[0].Rows[i].RowState.ToString();//这行出错,提示不能访问删除行,可帮助上说的是,delete()后只是将rowstate的状态标为deleted呀
并且我在SqlDataAdapter1.update(dataset1,"test");时发现并没有执行删除命令;
dataset中删除记录倒底是如何回事呀
并且SqlDataAdapter1.update是如何用的,我按照msdn上的解绍不行呀
...全文
191 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
penning 2004-10-29
SqlCommandBulder
回复
gebing0908 2004-10-28
偶也来学习。。。
回复
zhn0410 2004-10-28
占个位学习,并帮你顶一下。
回复
manbaum 2004-10-28
To luck2050:

你建了 CommandBulder 了么?
回复
luck2050 2004-10-28
通过yourdatarow.RowState == System.Data.DataRowState.Deleted我确实得到了该行记录已被删除,可是为什么用SqlDataAdapter1.update(dataset1,"test");不能保存到数据库呢
回复
RockyZhang 2004-10-28
在DS中被删除的行被标示了状态。删除后再对DataRow操作前先判断下状态。

yourdatarow.RowState == System.Data.DataRowState.Deleted
回复
penning 2004-10-28
一个DataRow对象刚被创建之后其状态是Detached,是孤立的一个存在,所以建立了DataRow之后在DataRow中的单元填充了数据后还要通过DataTable.Rows.Add(DataRow)方法将此DataRow添加到DataTable,DataRow添加到DataTable后, 这个DataRow的状态就转变为Added。当修改了这个DataRow后,这个DataRow状态转为Modified,当用DataRow.Delete()方法删除DataRow后,DataRow状态将转为Deleted,不过此行还存在在DataTable中的,只是状态改变了,这时用DataTable.Rows.Count查看行数,跟删除前是一样的。只有在调用了DataTable.Remove(DataRow)方法后,此DataRow才被从DataTable移除,状态也回复到Detached孤立状态。

一旦调用了DataTable.AcceptChanges()方法后,所有的行将根据不同的状态做不同的处理,Added、Modified、Unchanged将保留当前值,Deleted的行将从DataTable中移除,最后所有的行的状态都置为Unchanged。当DataTable是从DataAdapter.Fill(DataSet,DataTable)方法填充而形成的,Fill()方法将自动调用AcceptChanges()方法,将DataTable的行状态都置为Unchanged。并且,如果Fill方法中指定的那个DataTable在要填充的那个DataSet不存在时,会生成一个跟数据源表同样的结构的DataTable并填充数据。


试试
DataTable dt=oldDataTable.GetChanges(DataRowState.Deleted);
if (dt!=null)
foreach (DataRow dr in dt.Rows)
MessageBox.Show(dr[0,DataRowVersion.Original].ToString());
回复
luck2050 2004-10-28
我试过了还是不行,dataset.acceptchange()返回0
回复
minrange 2004-10-28
try it urself
回复
luck2050 2004-10-28
可是书上不是说要先delete->update->acceptchange()
回复
luluso 2004-10-28
Acceptchange()
回复
minrange 2004-10-28
//delete
dataset.acceptchange();
//update
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2004-10-28 05:30
社区公告
暂无公告