【问题标题】:Import excel file and display DataGridView selected rows to another DataGridView导入 excel 文件并将 DataGridView 选择的行显示到另一个 DataGridView
【发布时间】:2016-07-31 01:05:47
【问题描述】:

我正在尝试导入 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);
   }
}

【问题讨论】:

  • 请缩进您的代码。

标签: c# excel winforms datagridview


【解决方案1】:

你可以试试这样的东西

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 就足够了。无需转换为强类型数组,但这可能更像是一种语法偏好。

试试这个,让我知道它是如何工作的

【讨论】:

  • 非常感谢您的回答,但是当我单击移动按钮 (button3_click) 时,从 datagridview1 和变量获取的数据仍然无法在 datagridview2 中查看。我刚刚为 excel 文件创建了一个打开文件按钮,一个加载按钮将excel文件内容显示到datagridview1中,一个按钮将选定的行从datagridview1移动到datagridview2。
猜你喜欢
  • 1970-01-01
  • 2015-07-12
  • 2011-09-14
  • 2014-04-09
  • 2013-10-14
  • 1970-01-01
  • 1970-01-01
  • 2018-02-19
  • 1970-01-01
相关资源
最近更新 更多