我对dataset的updata的使用还不是很了解.
  比如:现有一个datagrid的表,里面是通过查询得到的结果,现在我要删除里面的某一行,然后用updata(ds,"name")来填充.我不知道该怎么写这段
  我写了一下,可是不能执行
private void dsdele()
{
 if(MessageBox.Show("确认删除吗?","询问",MessageBoxButtons.YesNo) == DialogResult.Yes)
{
int Rownum = this.dataGrid1.CurrentCell.RowNumber;
try
{
this.wds.Tables[0].Rows[Rownum].Delete();
this.wlk.Updatedatabase(this.wds.GetChanges(),name);
MessageBox.Show("修改成功");
}
catch
{
MessageBox.Show("该数据不能删除!","提示");
}
 }
}
不管怎么都是说该数据不能删除.我猜测是在Rownum 这个地方,可是我不知道该怎么改.哎,刚学,经验不多.
哪位能稍微详细点给我解答下.

解决方案 »

  1.   

    string strDele="delete from tabMail where ID=???";
    this.objCmd.CommandText = strDele;
    this.objCmd.ExecuteNonQuery();
      

  2.   

    int num=this.dataSet1.Tables[0].Rows.Count-1;
    if(num>=0)
    {
    ArrayList ar=new ArrayList();
    for(int i=num;i>=0;i--)
    {
    if(this.dataGrid1.IsSelected(i))
    ar.Add(i);
    }
    if(ar.Count>0)
    {
    if(MessageBox.Show("确实要删除选中的"+ar.Count.ToString()+"行吗?\n注意:删除后就无法恢复了!\n","警告",MessageBoxButtons.YesNo,MessageBoxIcon.Question)==DialogResult.Yes)
    {
    foreach(int i in ar)
    {
    this.dataSet1.Tables[0].Rows[i].Delete();
    }
    if(this.dataSet1.HasChanges())
    this.oleDbDataAdapter1.Update(this.dataSet1,this.dataSet1.Tables[0].TableName);
    }
    }
    }
      

  3.   

    问题是(我也不知到底算不算问题):我查找出来的datagrid里面的内容和dataset里的内容不一定就是一样的呀.比如datagrid里的第1条记录在dataset里不知道是第几个记录呀?updata是不是只能针对dataset,那我要删除查询出结果的datagrid里的记录该怎么写?