如何使用DataRow列表基于另一个数据表从数据表中选择值

时间:2019-06-29 08:30:45

标签: c#

我有2个数据表

我想根据数据表dtSeats(第一个)中的数据过滤数据表dtPross(第二个)中的结果

我使用以下代码:

DataTable dtSeats = new DataTable();
dtSeats = "select SitNum,Num from dbo.Table1"
SitNumList = (from row in dtSeats.AsEnumerable() 
             select Convert.ToInt32(row["SitNum"])).ToList();

当我使用此代码基于数据行列表过滤数据时

DataTable dtPross = "select SitNum from dbo.Table2 where SitNum in (" + SitNumList.ToList() + ")";

我收到此错误

SitNum in (System.Collections.Generic.List`1[System.Int32])

我想念什么吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

是的,您没有将List<int>转换为逗号分隔的元素字符串。

尝试下面的代码

//Below code will convert List<int> SitNumList = new List<int>(){1, 2, 3, 4} to string "1, 2, 3, 4"
string siteNums = string.Join(", ", SitNumList);
DataTable dtPross = "select SitNum from dbo.Table2 where SitNum in (" + siteNums  + ")";