Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 打开Excel文件时出现AccessViolationException异常_C#_.net_Excel_Openfiledialog_Exceldatareader - Fatal编程技术网

C# 打开Excel文件时出现AccessViolationException异常

C# 打开Excel文件时出现AccessViolationException异常,c#,.net,excel,openfiledialog,exceldatareader,C#,.net,Excel,Openfiledialog,Exceldatareader,我正在使用.NET4.0。我使用OpenFileDialog从Excel工作表中读取数据。第一次OpenFileDialog运行得很好,我得到了文件,但在我关闭它并重新打开它以获得另一个文件后,AccessViolationException显示出来 守则: private void excelFileOpenBt_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog1 = new OpenFileDialog(

我正在使用.NET4.0。我使用OpenFileDialog从Excel工作表中读取数据。第一次OpenFileDialog运行得很好,我得到了文件,但在我关闭它并重新打开它以获得另一个文件后,AccessViolationException显示出来

守则:

private void excelFileOpenBt_Click(object sender, EventArgs e)
{
   OpenFileDialog openFileDialog1 = new OpenFileDialog();
   openFileDialog1.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm";

   if (openFileDialog1.ShowDialog() == DialogResult.OK)
   {
      String filename = openFileDialog1.FileName;

      if (filename == String.Empty)
         return;

      fileNameLb.Text = filename;
      FileStream stream = new FileStream(filename, FileMode.Open);

      //Reading from a binary Excel file ('97-2003 format; *.xls)
      IExcelDataReader excelReader2003 = ExcelReaderFactory.CreateBinaryReader(stream);

      DataSet result = excelReader2003.AsDataSet();

      String txt = "";
      foreach (DataTable table in result.Tables)
      {
         MessageBox.Show("Table");
         for (int i = 0; i < table.Rows.Count; i++)
         {
            for (int j = 0; j < table.Columns.Count; j++)
               txt += "\"" + table.Rows[i].ItemArray[j] + "\";";
               txt += "----";
         }
      }
      MessageBox.Show(txt);
      excelReader2003.Close();
      stream.Close();
   }
}

您正在尝试读取或写入受保护的内存块。.NET Framework 4.0版