datagrid中的删除问题?

Firestone2003 2003-11-24 09:45:40
int index=this.dataGrid1.CurrentCell.RowNumber;
this.datasetTxl.Tables["txl"].Rows[index].Delete();
try
{
this.datasetTxl.AcceptChanges();
this.adapTxl.Update(this.datasetTxl,"txl");
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
为什么在数据库中无法删除这条数据啊??
郁闷中!
...全文
37 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Firestone2003 2003-11-28
  • 打赏
  • 举报
回复
谢谢大家!netpot(netpot)说的很对
netpot 2003-11-25
  • 打赏
  • 举报
回复
this.datasetTxl.AcceptChanges();
this.adapTxl.Update(this.datasetTxl,"txl");
问题就在你先AcceptChange,那么DataTable中所有的DataRow的RowState都
变成unchanged,所以,update方法就什么也不执行了,建议你看看帮助中
Adpater的更新过程(针对不同的RowState执行不同的操作)
你去掉AcceptChanges就可以执行更新了,而且更新后自动调用AcceptChange。
Firestone2003 2003-11-25
  • 打赏
  • 举报
回复
大家误会我的意思了!
我的程序不报错,就是执行update后不向数据库修改!
想删除的项没有删!
各位大侠救救我吧!快不行了!
skykevin 2003-11-25
  • 打赏
  • 举报
回复
index=this.dataGrid1.CurrentCell.RowNumber所指的位置不一定和数据集中Table的行一一对应.如:dataGrid1的RowNumber=2,对应于Table中行就不一定是2,解决办法之一如下:
CurrencyManager cm;
cm = (CurrencyManager) dataGrid1.Parent.BindingContext[dataGrid1.DataSource, dataGrid1.DataMember];
if (cm.Count > 0)
{
cm.RemoveAt(cm.Position);
}
ssdjmcj8048 2003-11-25
  • 打赏
  • 举报
回复
this.adapTxl.Update(changes)就可以了;DataAdapter默认是会自动AcceptChanges的
HNU 2003-11-25
  • 打赏
  • 举报
回复
如skykevin(蓝屿)说那样调整对应关系,修改代码如我说应该不会错的
HNU 2003-11-24
  • 打赏
  • 举报
回复
int index=this.dataGrid1.CurrentCell.RowNumber;

this.datasetTxl.Tables["txl"].Rows[index].Delete();

DataSet changes = this.datasetTxl.GetChanges();

try
{

this.adapTxl.Update(changes);
this.datasetTxl.AcceptChanges();

}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}


liusuccess 2003-11-24
  • 打赏
  • 举报
回复
报错吗?

110,533

社区成员

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

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

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