Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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# OLEDB连接关闭方法执行时间长_C#_Excel_Oledbconnection - Fatal编程技术网

C# OLEDB连接关闭方法执行时间长

C# OLEDB连接关闭方法执行时间长,c#,excel,oledbconnection,C#,Excel,Oledbconnection,我正在使用上述代码阅读excel。但它卡在了excel.Close()上;等待几秒钟,然后转到下一个语句。这会导致页面上的处理延迟。有什么建议吗 更新我的问题以提供更多细节 测试用例:- 我上传了一个xls文件,这需要正常的时间。 我上传了一个xlsx文件,它在connExcel.close()处暂停了25秒。 现在我上传了一个xls文件,它也停止了xls 我使用了以下连接字符串 对于xls:- connectionString=“Provider=Microsoft.Jet.OLEDB.4.0

我正在使用上述代码阅读excel。但它卡在了excel.Close()上;等待几秒钟,然后转到下一个语句。这会导致页面上的处理延迟。有什么建议吗

更新我的问题以提供更多细节

测试用例:- 我上传了一个xls文件,这需要正常的时间。 我上传了一个xlsx文件,它在connExcel.close()处暂停了25秒。 现在我上传了一个xls文件,它也停止了xls

我使用了以下连接字符串

对于xls:- connectionString=“Provider=Microsoft.Jet.OLEDB.4.0;数据源={0}; 扩展属性='Excel 8.0;HDR={1}'

对于xlsx:- connectionString=“Provider=Microsoft.ACE.OLEDB.12.0;数据源={0};
extendedproperties='excel8.0;HDR={1}'

可能的重复请尝试以下答案中的解决方案:嗨,Ahmad,这是一个c代码,只需在Excel中读取EmailID。它不需要多线程。它只是停留在excel.Close()上;20-40秒,然后给出输出。我在服务器上运行相同的代码,工作正常。但在本地机器上,它引起了问题。我使用的是visual studio express edition。@Chandikumar Hi Chandik您找到过解决方案吗?可能是重复的,请尝试以下答案中的解决方案:Hi Ahmad,这是一个c#代码,仅在excel中读取EmailID。它不需要多线程。它只是停留在excel.Close()上;20-40秒,然后给出输出。我在服务器上运行相同的代码,工作正常。但在本地机器上,它引起了问题。我使用的是visual studio express edition。@Chandikumar Hi Chandik您找到解决方案了吗?
        conStr = String.Format(conStr, FilePath, isHDR);
        OleDbConnection connExcel = new OleDbConnection(conStr);
        OleDbCommand cmdExcel = new OleDbCommand();
        OleDbDataAdapter oda = new OleDbDataAdapter();
        DataTable dt = new DataTable();
        cmdExcel.Connection = connExcel;

        //Get the name of First Sheet
        connExcel.Open();
        DataTable dtExcelSchema;
        dtExcelSchema =            connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
        string SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
        connExcel.Close();