Nao*_*chi 5 c# datatable datagridview selection winforms
我正在尝试仅将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;
}
}
Run Code Online (Sandbox Code Playgroud)
Hab*_*bib 11
你必须访问SelectedRows
像
dt.Rows[i][j] = dataGridView1.SelectedRows[i].Cells[j].Value;
Run Code Online (Sandbox Code Playgroud)
如果您DataTable
的Cell类型与Cell相同,那么它也会更好
DataTable dt = new DataTable();
foreach (DataGridViewColumn column in dataGridView1.Columns)
dt.Columns.Add(column.Name, column.CellType); //better to have cell type
Run Code Online (Sandbox Code Playgroud)
所以你的代码是:
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;
//^^^^^^^^^^^
}
}
Run Code Online (Sandbox Code Playgroud)