c# - 根据条件从 DataTable 中删除行

标签 c# asp.net

我有一个包含一些 ID 的列表。我想从 DataTable 中删除行,其中 = ListLinkedIds

List<string> ListLinkedIds = new List<string>(); //This has values such as 6, 8, etc.
DataSet ds = new DataSet();
SqlDataAdapter da = null;
DataTable dt = new DataTable();



    da = new SqlDataAdapter("SELECT TicketID, DisplayNum, TranstypeDesc, SubQueueId, EstimatedTransTime,LinkedTicketId FROM vwQueueData WHERE (DATEADD(day, DATEDIFF(day, 0, Issued), 0) = DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)) AND QueueId = @QueueId AND SubQueueId = @SubQueueId   AND LinkedTicketId != @LinkedTicketId  AND Called IS NULL", cs);
   da.SelectCommand.Parameters.AddWithValue("@QueueId", Queue);
   da.SelectCommand.Parameters.AddWithValue("@SubQueueId", SubQueue);
   da.SelectCommand.Parameters.AddWithValue("@LinkedTicketId", ListLinkedIds[x]);
   da.Fill(ds);


//Removes from DataTable 
for (int x = 0; x < ListLinkedIds.Count(); x++)
{
   //Remove Row from DataTable Where ListLinkedIds[x]
}


gvMain.DataSource = ds;
gvMain.DataBind();

我试过 dt.Rows.RemoveAt(remove) 但它只删除了行号。我想删除 ListLinkedIds 中的每一行。

最佳答案

使用 LINQ,您可以创建一个新的 DataTable,例如:

DataTable newDataTable = dt.AsEnumerable()
                        .Where(r=> !ListLinkedIds.Contains(r.Field<string>("IDCOLUMN")))
                        .CopyToDataTable();

关于c# - 根据条件从 DataTable 中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17841099/

相关文章:

asp.net - 如何在工作流程的不同 git 分支中保留不同版本的 WSDL

c# - 可序列化与数据契约与 WCF 服务中什么都没有

c# - Amazon S3 流太长

c# - Farseer 物理... Hello World ...?

c# - 实现父子类层次结构

asp.net - 我应该将自定义 AppSettings web.config 数据放入 ApplicationState 中吗?

asp.net - javascript 中带有字母数字检查的文本框

asp.net - 使用SetFocusOnError ="true"如何避免页面被刷新

c# - 我在以下割让中遇到错误。 (System.Data.OleDb.OleDbException : ORA-00933: SQL command not properly ended)

c# - 保存同名文件