datatable1.Rows.Remove(row1);
row1.Delete();
请问,两个方法有什么不同,都是从表中移除行吗?

解决方案 »

  1.   

    DataRowCollection.Remove:
    http://msdn.microsoft.com/zh-cn/library/system.data.datarowcollection.remove.aspxDataRow.Delete:
    http://msdn.microsoft.com/zh-cn/library/system.data.datarow.delete.aspx
      

  2.   

    摘自一楼给出的MSDN文章:调用 Remove 等同于先调用 Delete 再调用 AcceptChanges。 
      

  3.   

    两个方法都是用于删除特定的行,区别是:
    用 Remove 等同于先调用 Delete 再调用 AcceptChanges
      

  4.   

    static void Main()
            {
                DataTable table = MakeTable();
                DataRow  row = table.NewRow();
                Console.WriteLine(row.RowState);
                table.Rows.Add(row);
                Console.WriteLine(row.RowState);
                table.AcceptChanges();
                Console.WriteLine(row.RowState);
                row["FirstName"] = "Scott";
                Console.WriteLine(row.RowState);
                row.Delete();
                Console.WriteLine(row.RowState);
                table.Rows.Add(row);
                Console.WriteLine(row.RowState);
                Console.ReadKey(); 
           }
           private static DataTable MakeTable()
           {
               DataTable table = new DataTable("table");
               DataColumn dcFirstName = new DataColumn(
                   "FirstName", Type.GetType("System.String"));
               table.Columns.Add(dcFirstName);
               return table;
           }那为什么红色代码报错----该行已经属于此表。
    在红色代码前一句,不是有一句row.Delete();吗,说明已经删除了啊,
      

  5.   

    Delete之后没有AcceptChanges并没有真正删除。前面都白说了???