我试图只将 DataGridView 的选定行添加到 DataTable,我使用的代码总是从第一行开始,即使未选择这一行......有人知道如何请解决这个问题?
DataTable dt = new DataTable("Rapport");
// Generating columns to datatable
foreach (DataGridViewColumn column in dataGridView1.Columns)
dt.Columns.Add(column.Name, typeof(string));
// Adding selected rows of DGV to DataTable
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[j, i].Value;
}
}
最佳答案
您必须像访问 SelectedRows
dt.Rows[i][j] = dataGridView1.SelectedRows[i].Cells[j].Value;
如果您的 DataTable
与 Cell 具有相同的类型就更好了
DataTable dt = new DataTable();
foreach (DataGridViewColumn column in dataGridView1.Columns)
dt.Columns.Add(column.Name, column.CellType); //better to have cell type
所以你的代码是:
DataTable dt = new DataTable();
foreach (DataGridViewColumn column in dataGridView1.Columns)
dt.Columns.Add(column.Name, column.CellType); //better to have cell type
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;
//^^^^^^^^^^^
}
}
关于c# - DataGridView 选中行到DataTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19639641/