C# 是否可以使用SQL查询搜索DataGridView或DataTable

C# 是否可以使用SQL查询搜索DataGridView或DataTable,c#,sql,database,datagridview,datatable,C#,Sql,Database,Datagridview,Datatable,我想知道是否可以使用SQL查询来搜索DataGridView或DataTable 我有两列,希望搜索具有给定条件集的结果(例如a列=x,b列newdatetime(2001,8,1) 选择订单; 可能重复非常感谢您指向linq。我计划能够在运行时创建条件,因此我喜欢能够根据用户选择的参数类型动态创建某种SQL字符串的想法。据我所知,这种方法在linq中会更加困难,对吗?@Henning不,你不能在泛型对象上使用原始查询,你可以尝试使用ORM或Ado.net来接受原始查询,并在条件改变时相应地执行

我想知道是否可以使用SQL查询来搜索DataGridView或DataTable


我有两列,希望搜索具有给定条件集的结果(例如a列=x,b列<3)。或者我必须为此使用数据库吗?

您可以对DataTable使用Linq查询(不建议查询DataGrid)

DataTable orders=ds.Tables[“SalesOrderHeader”];
//使用linq查询SalesOrderHeader表中的订单
IEnumerable查询=
从orders.AsEnumerable()中的order开始
其中order.Field(“OrderDate”)>newdatetime(2001,8,1)
选择订单;

可能重复非常感谢您指向linq。我计划能够在运行时创建条件,因此我喜欢能够根据用户选择的参数类型动态创建某种SQL字符串的想法。据我所知,这种方法在linq中会更加困难,对吗?@Henning不,你不能在泛型对象上使用原始查询,你可以尝试使用ORM或Ado.net来接受原始查询,并在条件改变时相应地执行。这听起来很复杂,至少因为我不是专业人士。有没有办法使用某种“虚拟”数据库,这样我就可以使用sql查询了?所谓虚拟,我指的不是磁盘上的某个地方,而是RAM中的某个地方。@Henning您可以使用switch-case或conditional语句执行查询到所需的条件,但我认为这会导致效率低下、可读性较差的意式代码。
DataTable orders = ds.Tables["SalesOrderHeader"];

// Query the SalesOrderHeader table for orders using linq
IEnumerable<DataRow> query =
    from order in orders.AsEnumerable()
    where order.Field<DateTime>("OrderDate") > new DateTime(2001, 8, 1)
    select order;