Delete 郁闷的问题

fzcheng 2009-03-04 04:42:42

int stVoucherID = Convert.ToInt32(this.dataGridView1.CurrentRow.Cells["VoucherID"].Value);
DataTable dt = (DataTable)this.dataGridView1.DataSource;
for (i = 0; i < dt.Rows.Count; i++)
{
if (Convert.ToInt32(dt.Rows[i]["VoucherID"])==stVoucherID)//错误指到这里
{ dt.Rows[i].Delete(); }
}

this.dataGridView1.Refresh();

为什么我第一次删除的时候可以删除相关的信息。第二次就提示不能通过已删除的行取得该行的信息
...全文
153 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
fzcheng 2009-03-04
  • 打赏
  • 举报
回复
不行哦.
surlew 2009-03-04
  • 打赏
  • 举报
回复

DataTable dt = (DataTable)this.dataGridView1.DataSource;
for (i = 0; i < dt.Rows.Count; i++)
{
if (Convert.ToInt32(dt.Rows[i]["VoucherID"])==stVoucherID)//错误指到这里
{ dt.Rows[i].Delete(); }
}

不要用DataTable直接
for (i = 0; i < this.dataGridView1.Rows.Count; i++)
{
if (Convert.ToInt32(this.dataGridView1t.Rows[i]["VoucherID"])==stVoucherID)//错误指到这里
{
this.dataGridView1t.Rows.RemoveAt(this.dataGridView1.Rows[i].Index);
}
}




试试
fzcheng 2009-03-04
  • 打赏
  • 举报
回复
点击那行有个值,把 dt中存在该值的都删除。
surlew 2009-03-04
  • 打赏
  • 举报
回复
好像你是要删除你点击那行的数据是吧?
  • 打赏
  • 举报
回复
marking
fzcheng 2009-03-04
  • 打赏
  • 举报
回复
这样不会报错。但是没有全部删除
fzcheng 2009-03-04
  • 打赏
  • 举报
回复

for (i = 0; i < dt.Rows.Count; i++)
{
if (Convert.ToInt32(dt.Rows[i]["VoucherID"])==stVoucherID)
{
dt.Rows.RemoveAt(this.dataGridView1.Rows[i].Index);
//dt.Rows[i].Delete();

}
}

这样就不能删除相关信息,只能删除一条哦。
zgke 2009-03-04
  • 打赏
  • 举报
回复
if (Convert.ToInt32(dt.Rows[i]["VoucherID"])==stVoucherID)//错误指到这里
{ dt.Rows[i].Delete(); i-- }

加这个看看...要不索引超出了.
KGallery 2009-03-04
  • 打赏
  • 举报
回复
只是Delete掉
Delete只是标记
Rows[i]也没有Dispose掉
所以第二次删除同行时
实际上删的是你已经Delete掉的
所以报错
zgke 2009-03-04
  • 打赏
  • 举报
回复
if (Convert.ToInt32(dt.Rows[i]["VoucherID"])==stVoucherID)//错误指到这里
{ dt.Rows[i].Delete(); i-- }

mzwww 2009-03-04
  • 打赏
  • 举报
回复
索引问题,你可以重新取取数据绑定到datagridview上
sunshine_anycall 2009-03-04
  • 打赏
  • 举报
回复
dt.Rows[i].Delete(); 

只是删除了行里的数据,行没有删
这样
dt.Rows.Remove(yourRow);//yourRow:要删除的行

或者
dt.Rows.RemoveAt(index);//index:要删除行的索引

111,126

社区成员

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

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

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