我正在使用Desktop Application,我正在尝试从datagridview创建数据表。但我只想在选中或选中复选框时添加这些行。目前我从这样的整个数据网格视图中创建了一个数据表。
DataTable tbl = (DataTable)dataGridView1.DataSource;
我在datagridview中添加了一个复选框coloumn ..所以请指导我如何将所选行添加到新数据表中
谢谢..这是新代码更新
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
if (Convert.ToBoolean(dataGridView1.Rows[i].Cells[0].Value) == true)
{
DataRow dr0 = tbl.NewRow();
dr0["ID"] = dataGridView1.Rows[i].Cells["ID"].Value;
dr0["BikeCC"] = dataGridView1.Rows[i].Cells["BikeCC"].Value.ToString();
dr0["ChassisModel"] = dataGridView1.Rows[i].Cells["ChassisModel"].Value.ToString();
dr0["BikeCC"] = dataGridView1.Rows[i].Cells["BikeCC"].Value.ToString();
dr0["ChassisModel"] = dataGridView1.Rows[i].Cells["Chassismodel"].Value.ToString();
tbl.Rows.Add(dr0);
}
}
objMdl.RecordTable = tbl;
这是我可以找到将所选行添加到新数据表中的方式......它很长,但我仍然面临很少的问题。我会稍微发布一下你的样子。
答案 0 :(得分:1)
假设您的复选框列名为 yourCheckBoxColumn :
DataTable tbl = ((DataTable)dataGridView1.DataSource).Clone();//Clone structure first
var rows = dataGridView1.Rows.OfType<DataGridViewRow>()
.Where(r=>Convert.ToBoolean(r.Cells["yourCheckBoxColumn"].Value))
.Select(r=>((DataRowView)r.DataBoundItem).Row);
foreach(var row in rows)
tbl.ImportRow(row);