为什么这个程序无法删除数据表的行?

beckfan 2011-02-21 03:44:35
有个数据表内有两列:类别编号,类别名称



图书类别表TableAdapter adapter = new 图书类别表TableAdapter();

testDataRelation.db3DataSet.图书类别表DataTable tbl = adapter.GetData();

tbl.Rows.RemoveAt(图书类别表DataGridView.CurrentRow.Index);

adapter2.Update(tbl);

试了下不行

为什么无法删除呢?

...全文
123 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
beckfan 2011-02-22
  • 打赏
  • 举报
回复
感谢13楼和18楼

用delete方法确实可以


但是remove和removeAt和adapter的update方法不兼容我还是想不太通

如果说不用update方法

如何将remove和removeAt方法对datatable所做的更改提交给数据库?

是不是还有其他更好的方式
fenglllin 2011-02-21
  • 打赏
  • 举报
回复
13楼正解。前几天我也被同样问题困扰了好久,最后发现调用
Delete()
方法再更新数据库就行。

//………………
dataTable.Rows[1].Delete();
adapter.Update(dataTable);
wuyq11 2011-02-21
  • 打赏
  • 举报
回复
在循环中进行删除操作,要倒过来进行操作,防止索引越界
DataRow.Delete()后要记住AcceptChanges
or
DataRow[] drs = DataTabl1.Select( "");
for( int i=0 ; i <drs.Count ; i++ )
{
DataTable1.Rows.Remove( drs[i] );
}
Andyyoung06 2011-02-21
  • 打赏
  • 举报
回复
adapter2哪里来的
熙熙 2011-02-21
  • 打赏
  • 举报
回复
这个主要是你没有真正理解SqlDataAdapter的update方法。
update方法是根据RowState进行对数据库表的更新的,
在做新增、删除(Delete,只是标示行状态)、更新,update方法
都会去校验操作行的行状态是否改变,发生改变才会真正到数据库更新
相关数据。
但是remove、removeAt是直接删除表里面的数据(再DataTable中),
行都不存在了,就没有所谓的行状态变化,所有不会真正到数据库更新
相关数据。
另外在执行update之前不能对数据集执行AcceptChanges,否则数据库
也更新不了相关的数据。
建议要删除直接用delete
  • 打赏
  • 举报
回复
给你说个笨方法
写SQL语句删除!!!!!!!!
Fry_cici 2011-02-21
  • 打赏
  • 举报
回复
你要删除内存的数据还是数据库中的数据?
beckfan 2011-02-21
  • 打赏
  • 举报
回复
增加行是可以的,就是删除不行哎
beckfan 2011-02-21
  • 打赏
  • 举报
回复
removeAt和remove方法我都用了啊 都不行 问题可能不在这……
  • 打赏
  • 举报
回复
看下我发的几个删除的方法
不一定非要用这个方法!
beckfan 2011-02-21
  • 打赏
  • 举报
回复
加上也不起作用的
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
初始化一个DataRow:
DataTable dataTable=dataSet.Tables[0];
DataRow newRow=dataTable.NewRow(); //用dataTable生成DataRow可以利用dataTable里面的模式
dataTable.Rows.Add(newRow);

删除行:
DataTable.Rows.Remove(行实例);
DataTable.Rows.RemoveAt(行号);
DataRow.Delete(); //行自身移除

  • 打赏
  • 举报
回复
RemoveAt需要AcceptChanges吧
你加上试试 吗
beckfan 2011-02-21
  • 打赏
  • 举报
回复
有人帮我看看么 急
beckfan 2011-02-21
  • 打赏
  • 举报
回复
我的代码错误在哪

remove方法不是不需要acceptchange的吗
  • 打赏
  • 举报
回复
objDataSet.Tables["item"].Rows.Remove(r);
objDataSet.Tables["item"].AcceptChanges();

111,117

社区成员

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

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

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