簡體   English   中英

如何使用“ IN”之類的SQL在DataTable上運行Linq並返回DataTable C#?

[英]How to run Linq on DataTable with SQL like 'IN' and return DataTable C#?

我正在嘗試從數據表中提取特定的錯誤行:

在SQL中,這是我的想法:

SELECT 
*
FROM [Main].[tableData] AS [D] 
WHERE [D].[Row Number] IN (
-- List<int> errorLineNumbers Here
)

這是我的C#:

DataTable mainDataTable = GetData();

List<int> errorLineNumbers errorLineNumbers = GerErrorLineNumbers(mainDataTable);

// This Crashes
DataTable errorDataTable = (from main in mainDataTable.AsEnumerable()
                            where main.Field<int>("Row Number").Equals(errorLineNumbers)
                            select main).CopyToDataTable<DataRow>();

這是例外:InvalidCastException

指定的演員表無效。

我對此沒有很多經驗。 任何幫助,將不勝感激。

where子句中,您嘗試將int (字段值)等於List<int>對象-自然地,將嘗試進行強制轉換,然后失敗。 相反,請嘗試以下操作:

DataTable errorDataTable = (from main in mainDataTable.AsEnumerable()
                            where errorLineNumbers.Contains(main.Field<int>("Row Number"))
                            select main).CopyToDataTable<DataRow>();

暫無
暫無

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

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