如何仅传输datagridview中的选定行
How to transfer only the selected rows in datagridview
我有一个包含 2 个数据网格视图的表单,我想知道如何正确地从 "datagridview1" 导入选定的行到第二个数据网格视图 "DatagridCopy"?
我想从选定的行创建一个新的 DataTable,并使该 DataTable 成为 DatagridCopy 的数据源。
我不断收到此错误:
Additional information: Type of value has a mismatch with column
type Couldn't store <8S3501> in t101PARTDataGridViewTextBoxColumn
Column. Expected type is DataGridViewTextBoxCell.
DataTable dt = new DataTable();
foreach (DataGridViewColumn column in dataGridView1.Columns)
{
dt.Columns.Add(column.Name, column.CellType); //better to have cell type TextBoxCell.
for (int i = 0; i < dataGridView1.SelectedRows.Count; i++)
{
dt.Rows.Add();
for (int j = 0; j < dataGridView1.Columns.Count; j++)
{
dt.Rows[i][j] = dataGridView1.SelectedRows[i].Cells[j].Value; //ERROR HERE<-----
}
}
}
BindingSource binding = new BindingSource();
binding.DataSource = dt;
DatagridCopy.DataSource = binding;
DataTable 应该保存数据,没有任何视觉信息,但是
dt.Columns.Add(column.Name, column.CellType);
你是在告诉它数据将是 DataGridViewTextBoxCell,但是这里
dt.Rows[i][j] = dataGridView1.SelectedRows[i].Cells[j].Value;
您分配实际值而不是单元格。只尝试 dt.Columns.Add(column.Name),或 dt.Columns.Add(column.Name, typeof(string)) 或任何实际类型。
如果您希望单元格成为特定类型,则需要设置 DatagridCopy,而不是 dt。
我有一个包含 2 个数据网格视图的表单,我想知道如何正确地从 "datagridview1" 导入选定的行到第二个数据网格视图 "DatagridCopy"?
我想从选定的行创建一个新的 DataTable,并使该 DataTable 成为 DatagridCopy 的数据源。
我不断收到此错误:
Additional information: Type of value has a mismatch with column type Couldn't store <8S3501> in t101PARTDataGridViewTextBoxColumn Column. Expected type is DataGridViewTextBoxCell.
DataTable dt = new DataTable();
foreach (DataGridViewColumn column in dataGridView1.Columns)
{
dt.Columns.Add(column.Name, column.CellType); //better to have cell type TextBoxCell.
for (int i = 0; i < dataGridView1.SelectedRows.Count; i++)
{
dt.Rows.Add();
for (int j = 0; j < dataGridView1.Columns.Count; j++)
{
dt.Rows[i][j] = dataGridView1.SelectedRows[i].Cells[j].Value; //ERROR HERE<-----
}
}
}
BindingSource binding = new BindingSource();
binding.DataSource = dt;
DatagridCopy.DataSource = binding;
DataTable 应该保存数据,没有任何视觉信息,但是
dt.Columns.Add(column.Name, column.CellType);
你是在告诉它数据将是 DataGridViewTextBoxCell,但是这里
dt.Rows[i][j] = dataGridView1.SelectedRows[i].Cells[j].Value;
您分配实际值而不是单元格。只尝试 dt.Columns.Add(column.Name),或 dt.Columns.Add(column.Name, typeof(string)) 或任何实际类型。
如果您希望单元格成为特定类型,则需要设置 DatagridCopy,而不是 dt。