我查了资料,只能根据行号来删除,但更多的情况下是要判断行的内容来删除的.如要删除id为10的行呢.或,id为10的有N行,我总不能按行号一行一行的删吧?

解决方案 »

  1.   

            DataTable dt = new DataTable();
                DataRow[] dr = dt.Select("id=10");
                foreach (DataRow d in dr)
                {
                    dt.Rows.Remove(d);
                }
      

  2.   

    结帖率:0.00% 
    using System;
    using System.Data;namespace ConsoleApplication1 {
        internal class Program {
            private static void Main(string[] args) {
                
                DataTable dt = new DataTable();
                dt.Columns.Add("col1");
                dt.Columns.Add("col2");            dt.Rows.Add("jim", "green");
                dt.Rows.Add("jim", "green2");
                dt.Rows.Add("jim", "green3");
                dt.Rows.Add("barrack", "obama");
                Console.WriteLine(dt.Rows.Count + " rows in total before deletion");            // 选出col1 不等于 jim的所有行 
                DataRow[] dr = dt.Select("col1 <> 'jim'");
                
                // 清空datatable
                dt.Rows.Clear();            // 把col1 不等于 jim的所有行插回到datable
                foreach (DataRow row in dr) {
                    dt.Rows.Add(row);
                }            Console.WriteLine(dt.Rows.Count + " rows in total after deletion");
                
                Console.ReadLine();
            }
        }
    }