簡體   English   中英

使用LINQ從DataTable中刪除特定的行

[英]using LINQ to delete specific rows from DataTable

我想從名為dt的DataTable中刪除特定行。

對於SQL中的表,我可以這樣做:

DELETE FROM dt 
WHERE BASELINE_FOLDER = baselineSubfolder
AND BASELINE_FILE = baselineFilename
AND BASELINE_CHECKSUM = baselineChecksum;

是否有相應的LINQ語句?

假設你沒有模型,只有一個DataTable (這是我從OP中理解的)。

//Cast to enumerable of `DataRow` and filter on your condition
var rows = dt.Rows.Cast<DataRow>().Where(row => row["BASELINE_FOLDER"] == baselineSubFolder && row["BASELINE_FILE" == baselineFilename
&& row["BASELINE_CHECKSUM"] == baselineChecksum).ToArray();
//Loop through and remove the rows that meet the condition
foreach(DataRow dr in rows)
{
  dt.Rows.Remove(dr);
}

您可以將數據表轉換為列表,並可以使用RemoveAt()來執行此操作。

您可以將其轉換為列表並使用以下代碼

string baseLineFolder=dt.Rows["BASELINE_FOLDER"].ToString();
                string baseLineFile=dt.Rows["BASELINE_FILE"].ToString();
                string baseLineChecksum=dt.Rows["BASELINE_CHECKSUM"].ToString();
                var dtresult = dt.AsEnumerable();
                var result=(from r in dtresult
                            where(r.Field<string>("BASELINE_FOLDER")!=baseLineFolder)
                            &&(r.Field<string>("BASELINE_FILE")!=baseLineFile)
                            &&(r.Field<string>("BASELINE_CHECKSUM ")!=baseLineChecksum)
                              select r).ToList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM