使用 Linq 查询 Datagridview.Rows 或数据集
Query a Datagridview.Rows or Dataset using Linq
我有一些问题。由于我对 Linq 不太熟悉,所以我不知道如何查询我的 datagridview(或者最好直接查询数据集)并在另一个 datagridview 上显示结果。
这是我填写完整数据网格视图和数据集的地方:
string icerikQuery = "SELECT * FROM [RRSelfServis].[dbo].[talimaticerikler] order by [kod] ASC, [percent] DESC";
//MessageBox.Show(icerikQuery);
SqlDataAdapter icerikadapter = new SqlDataAdapter(icerikQuery, connection);
DataSet icerikSet = new DataSet();
icerikadapter.Fill(icerikSet, "Test_table_icerik");
dataGridView2.DataSource = icerikSet;
dataGridView2.DataMember = "Test_table_icerik";
这是我的查询部分:
dataGridView4.DataSource = from DataGridViewRow in dataGridView2.Rows
where rowView.Row.Field<string>("kod").Value.ToString() == SomeSearchStringVariable
orderby rowView.Row.Field<decimal>("percent") descending
select row;
但目前我遇到 dataGridView2.Rows
的错误:
Could not find an implementation of the query pattern for source type
'System.Windows.Forms.DataGridViewRowCollection'. 'Where' not found.
Consider explicitly specifying the type of the range variable
'DataGridViewRow'.
我的第一选择是查询 DataSet icerikSet
但 datagridview 也可以。
提前致谢。
从要搜索的数据集中取出数据表,将其标记为可枚举,然后select匹配您的搜索的行。
var query = from row in icerikSet.Tables[0].AsEnumerable()
where row.Field<string>("kod").Equals(SomeSearchStringVariable)
orderby row.Field<decimal>("percent") descending
select row;
您可以根据查询创建另一个 DataSet 或 DataTable,并将其设置为您的网格的源。
DataTable dt = query.CopyToDataTable();
[...]
我有一些问题。由于我对 Linq 不太熟悉,所以我不知道如何查询我的 datagridview(或者最好直接查询数据集)并在另一个 datagridview 上显示结果。
这是我填写完整数据网格视图和数据集的地方:
string icerikQuery = "SELECT * FROM [RRSelfServis].[dbo].[talimaticerikler] order by [kod] ASC, [percent] DESC";
//MessageBox.Show(icerikQuery);
SqlDataAdapter icerikadapter = new SqlDataAdapter(icerikQuery, connection);
DataSet icerikSet = new DataSet();
icerikadapter.Fill(icerikSet, "Test_table_icerik");
dataGridView2.DataSource = icerikSet;
dataGridView2.DataMember = "Test_table_icerik";
这是我的查询部分:
dataGridView4.DataSource = from DataGridViewRow in dataGridView2.Rows
where rowView.Row.Field<string>("kod").Value.ToString() == SomeSearchStringVariable
orderby rowView.Row.Field<decimal>("percent") descending
select row;
但目前我遇到 dataGridView2.Rows
的错误:
Could not find an implementation of the query pattern for source type 'System.Windows.Forms.DataGridViewRowCollection'. 'Where' not found. Consider explicitly specifying the type of the range variable 'DataGridViewRow'.
我的第一选择是查询 DataSet icerikSet
但 datagridview 也可以。
提前致谢。
从要搜索的数据集中取出数据表,将其标记为可枚举,然后select匹配您的搜索的行。
var query = from row in icerikSet.Tables[0].AsEnumerable()
where row.Field<string>("kod").Equals(SomeSearchStringVariable)
orderby row.Field<decimal>("percent") descending
select row;
您可以根据查询创建另一个 DataSet 或 DataTable,并将其设置为您的网格的源。
DataTable dt = query.CopyToDataTable();
[...]