溫馨提示×

C# DataTable數(shù)據(jù)刪除有哪些方法

c#
小樊
95
2024-10-12 18:37:22
欄目: 編程語言

在C#中,使用DataTable刪除數(shù)據(jù)主要有以下幾種方法:

  1. 使用Delete方法:這是最常見的方法,通過指定要刪除的行的主鍵值或條件來刪除數(shù)據(jù)。例如:

    // 創(chuàng)建DataTable并添加數(shù)據(jù)
    DataTable dt = new DataTable();
    dt.Columns.Add("ID", typeof(int));
    dt.Columns.Add("Name", typeof(string));
    dt.Rows.Add(1, "Alice");
    dt.Rows.Add(2, "Bob");
    
    // 刪除ID為1的行
    dt.Rows.Delete(1);
    
  2. 使用Delete方法結(jié)合Where子句:這種方法允許你根據(jù)更復(fù)雜的條件刪除數(shù)據(jù)。例如:

    // 刪除Name為"Bob"的行
    dt.Rows.Delete(dt.Rows.Find(2));
    
  3. 使用Remove方法:此方法允許你根據(jù)條件刪除多行數(shù)據(jù)。例如:

    // 刪除所有Name為"Alice"的行
    dt.Rows.Remove(dt.Rows.Find(1));
    
  4. 使用DefaultView和RowFilter:通過DefaultView和RowFilter屬性,你可以動態(tài)地過濾和刪除數(shù)據(jù)。例如:

    // 創(chuàng)建DataTable并添加數(shù)據(jù)
    DataTable dt = new DataTable();
    dt.Columns.Add("ID", typeof(int));
    dt.Columns.Add("Name", typeof(string));
    dt.Rows.Add(1, "Alice");
    dt.Rows.Add(2, "Bob");
    
    // 創(chuàng)建DefaultView并設(shè)置RowFilter
    DataView dv = dt.DefaultView;
    dv.RowFilter = "Name = 'Alice'";
    
    // 遍歷FilteredView并刪除數(shù)據(jù)
    foreach (DataRowView rowView in dv)
    {
        dt.Rows.Remove(rowView.Row);
    }
    
  5. 使用Linq查詢:C#的LINQ查詢功能也可以用來刪除DataTable中的數(shù)據(jù)。例如:

    // 創(chuàng)建DataTable并添加數(shù)據(jù)
    DataTable dt = new DataTable();
    dt.Columns.Add("ID", typeof(int));
    dt.Columns.Add("Name", typeof(string));
    dt.Rows.Add(1, "Alice");
    dt.Rows.Add(2, "Bob");
    
    // 使用Linq查詢刪除Name為"Alice"的行
    dt.AsEnumerable().Where(row => row.Field<string>("Name") == "Alice").ToList().ForEach(row => dt.Rows.Remove(row));
    

請注意,在使用上述方法刪除數(shù)據(jù)后,你可能需要調(diào)用AcceptChanges方法來提交更改并更新DataTable。例如:

// 刪除數(shù)據(jù)后提交更改
dt.AcceptChanges();

0