我现在获得一个datatable,想根据一定得条件删除数据库中的相应的记录,如何实现?
代码如下:
                localhost.Service1 ls = new Project.localhost.Service1();
                DataTable dt_tsk = ls.getTskName();
                DataRow[] arrRows = dt_tsk.Select("PROJECT_ID = 111111");                foreach (DataRow row in arrRows)
                {
                    row.Delete();
                }不知道该怎么改正?

解决方案 »

  1.   

     foreach (DataRow row in arrRows) 
                    { 
                        row.Delete(); 
                    } 
    这个应该是不行的。
    因为不能对foreach 循环变量作修改,这个是语法。
    写成如下: 
     foreach (DataRow row in arrRows) 
                    { 
                        dt_tsk.Rows[dt_tsk.IndexOf(row)].Delete();
                    } 
      

  2.   

    晕了,那你用SqlCommand 对象就行了啊。, 
      

  3.   

    你这样只是在这个表里的删除,其他的都没用,应该将这个PROJECT_ID != 111111返回到数据库中去删除delete from table where PROJECT_ID != 111111
      

  4.   

    楼上各位,可能我的描述不准确,我想是这样,我获得一个datatable后,想在这个datatable中删除相应的记录,同时要让数据库中保持一样的更新。这个功能如何实现,谢谢大家。
      

  5.   

    localhost.Service1 ls = new Project.localhost.Service1(); 
                    DataTable dt_tsk = ls.getTskName(); 
                    DataRow[] arrRows = dt_tsk.Select("PROJECT_ID = 111111"); foreach (DataRow row in arrRows) 
                    { 
                        dt_tsk.Rows[dt_tsk.IndexOf(row)].Delete();
                         dt_tsk.AcceptChanges(); 
                    } 
      

  6.   

    dt_tsk.IndexOf(row)为什么我这里显示错误呢?
      

  7.   

    错误 1 “System.Data.DataTable”不包含“IndexOf”的定义,并且找不到可接受类型为“System.Data.DataTable”的第一个参数的扩展方法“IndexOf”(是否缺少 using 指令或程序集引用?) F:\term_sys\04.programming\new\ProjectAddIn2003\Interfaces\ProjectAddIn.cs 307 40 ProjectAddIn2003