C# 如何直接查询数据表和数据集?

C# 如何直接查询数据表和数据集?,c#,sql,.net,visual-studio-2010,C#,Sql,.net,Visual Studio 2010,有没有办法直接在dataset或datatable上执行SQL查询。需要执行的查询非常复杂,可能很难用Linq实现 有没有类似的方法可以直接从dataset或datatable进行查询 是否有任何工具可用于将复杂查询转换为linq?有一个DataTable.Select()方法,该方法返回符合特定条件的行 但是,语法有点有限。例如: DataTable.Select("Date > #1/1/2014# AND Name = \"John\""); 应选择日期列的日期值为2014年1月1

有没有办法直接在dataset或datatable上执行SQL查询。需要执行的查询非常复杂,可能很难用Linq实现

有没有类似的方法可以直接从dataset或datatable进行查询


是否有任何工具可用于将复杂查询转换为linq?

有一个DataTable.Select()方法,该方法返回符合特定条件的行

但是,语法有点有限。例如:

DataTable.Select("Date > #1/1/2014# AND Name = \"John\"");
应选择日期列的日期值为2014年1月1日或更高,且名称列为“John”的任何行。另外,使用String.Format()也很方便


但是,与在实际查询中修复相比,这是非常有限的。

尝试使用LinqPad或类似的工具

另一种方法是在数据库中创建复杂的查询作为视图,然后编写一个简单的SELECTFROM视图
另一种方法是使用MethodChain

你的第二个问题:试试Linqer:关于你的第一个问题:在你的链接中,northwind数据库被查询,但你的主题是数据集?我们谈论的是linq到sql还是linq到dataset?@Serv纠正了这个问题,我谈论的是从dataset或DataTable而不是从DB进行查询。sql查询不是由.NET处理的,它们是由sql Server之类的sql引擎处理的。您可以启动一个低开销的SQL实例,例如,将数据转储到其中,然后对其进行查询。如果数据集中有数据,则表示您已经处理了数据并从数据库中获取了数据。那么:为什么要查询数据集而不是改进对数据库的查询?
DataTable.Select(String.Format("Date > {0} AND Name = {1}", date, name));