使用 Linq 从 DataGridView 的特定行获取 DataTable
Get DataTable from DataGridView's Specific Rows with Linq
我有一个 datagridview,我想在某些条件下从中创建一个数据表。例如,当用户双击一行时,我想让该行成为一个数据表,或者 datagridview 有一个复选框单元格,我想要一个来自该网格的数据表,其中选中了检查列。我怎么能用linq做到这一点?有什么 linq 方法吗?
我从数据库中得到一个带有 sqldataadaptor 的数据表,然后用
将它绑定到 datagridview
dataGridView.DataSource = myDataTable;
我有一个工作代码,当用户双击 datagridview 中的一个单元格时,我将该行添加到数据表中,就像这样
foreach (DataGridViewColumn column in dataGridView.Columns)
dataTable.Columns.Add(column.Name, column.ValueType);
dataTable.Rows.Add();
for (int j = 0; j < dataGridView.Columns.Count; j++)
{
dataTable.Rows[0][j] = dataGridView.Rows[e.RowIndex].Cells[j].Value;
}
我只是想知道,是否有一种 linq 方法可以将此结果作为数据表,例如
dataTable =dataGridView.Rows.Cast<DataGridViewRow>().Where(f=>f.Index==e.RowIndex) //rowindex is the double clicked rows index here
此代码将帮助您入门:
DataTable dt = new DataTable();
foreach (DataGridViewColumn column in dataGridView1.Columns)
dt.Columns.Add(column.Name);
DataGridViewSelectedRowCollection row = this.dataGridView1.SelectedRows;
foreach (DataGridViewRow dr in row)
dt.Rows.Add(dr);
我有一个 datagridview,我想在某些条件下从中创建一个数据表。例如,当用户双击一行时,我想让该行成为一个数据表,或者 datagridview 有一个复选框单元格,我想要一个来自该网格的数据表,其中选中了检查列。我怎么能用linq做到这一点?有什么 linq 方法吗?
我从数据库中得到一个带有 sqldataadaptor 的数据表,然后用
将它绑定到 datagridviewdataGridView.DataSource = myDataTable;
我有一个工作代码,当用户双击 datagridview 中的一个单元格时,我将该行添加到数据表中,就像这样
foreach (DataGridViewColumn column in dataGridView.Columns)
dataTable.Columns.Add(column.Name, column.ValueType);
dataTable.Rows.Add();
for (int j = 0; j < dataGridView.Columns.Count; j++)
{
dataTable.Rows[0][j] = dataGridView.Rows[e.RowIndex].Cells[j].Value;
}
我只是想知道,是否有一种 linq 方法可以将此结果作为数据表,例如
dataTable =dataGridView.Rows.Cast<DataGridViewRow>().Where(f=>f.Index==e.RowIndex) //rowindex is the double clicked rows index here
此代码将帮助您入门:
DataTable dt = new DataTable();
foreach (DataGridViewColumn column in dataGridView1.Columns)
dt.Columns.Add(column.Name);
DataGridViewSelectedRowCollection row = this.dataGridView1.SelectedRows;
foreach (DataGridViewRow dr in row)
dt.Rows.Add(dr);