[英]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.