导入excel文件并将DataGridView选定的行显示到另一个DataGridView
本文关键字:DataGridView 显示 另一个 excel 文件 导入 | 更新日期: 2023-09-27 17:59:30
我正在尝试导入excel文件并将其加载到我的datagridview1
中。
在我的DataGridView
中显示了文件的内容后,我想选择该行并将其传输到我的第二个DataGridView
中。
请有人能帮我修复我的代码吗?因为我收到错误:
System.Windows.Forms.dll 中发生类型为"System.InvalidOperationException"的未处理异常
private void button1_Click(object sender, EventArgs e)
{
string PathConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +textBox1.Text + ";Extended Properties='Excel 12.0 XML;HDR=YES;';";
OleDbConnection conn = new OleDbConnection(PathConn);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter("Select * from [" + "Sheet1" + "$]", conn);
DataTable dt = new DataTable();
myDataAdapter.Fill(dt);
dataGridView1.DataSource = dt;
}
private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
this.textBox1.Text = openFileDialog1.FileName;
}
}
private void button3_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow selRow in dataGridView1.SelectedRows.OfType<DataGridViewRow>().ToArray())
{
dataGridView2.Rows.Remove(selRow);
dataGridView2.Rows.Add(selRow);
}
}
您可以尝试更像这个的东西
var selected_rows = new List<DataGridViewRow>();
foreach (DataGridViewRow selRow in dataGridView1.SelectedRows.OfType<DataGridViewRow>().ToArray())
{
selected_rows.Add(row);
}
foreach(var row in selected_rows){
dataGridView1.Rows.Remove(row);
dataGridView2.Rows.Add(row);
}
C#通常不允许在枚举集合时修改该集合。通常,您可以通过使用初始循环来简单地收集要操作的对象,然后可以迭代该对象集合来避免这个问题。像这样的
我还认为调用dataGridView1.SelectedRows
就足够了。不需要转换为强类型数组,但这可能更像是一种语法偏好。
试试这个,让我知道它是如何工作的