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上的解绍不行呀
...全文
242 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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