使用oledb上传excel表时遇到问题。几个星期前,它完美地工作,所以我搬到了不同的模块。
但是当我正在测试和调试应用程序时,它正在抛出一个错误。
有人请调查一下,因为我无法解决这个问题,而且,当我在谷歌搜索时,他们也没有发布决议....
错误:检测到DisconnectedContext
为此RuntimeCallableWrapper转换到COM上下文0x673dd0失败 以下错误:调用的对象已与其客户端断开连接。 (来自HRESULT的异常:0x80010108(RPC_E_DISCONNECTED))。这通常是 因为这个RuntimeCallableWrapper所在的COM上下文0x673dd0 已创建已断开连接或正在忙于执行其他操作。释放 来自当前COM上下文的接口(COM上下文0x673d18)。这个 可能会导致损坏或数据丢失。为避免此问题,请确保 所有COM上下文/公寓/线程都保持活跃并且可用 上下文转换,直到应用程序完全完成 RuntimeCallableWrappers,表示它们内部的COM组件。
我的代码: For FileUpload
string filefullpath = null;
try
{
string filepath = Server.MapPath("~/BulkUploadFile/");
string filename = fuDatabaseFile.FileName;
string filetype = Path.GetExtension(filename);
string filenamewithoutextension = Path.GetFileNameWithoutExtension(filepath);
string append = DateTime.Now.ToString("yyyyMMddHHmmssfffFFF");
string newfilename = filenamewithoutextension + append + filetype;
filefullpath = filepath + newfilename;
fuDatabaseFile.SaveAs(filefullpath);
}
catch (Exception ex)
{
}
ExcelConnectivity代码:
FileUpload();
string excelconnectionstring = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + FileUpload() + ";Extended Properties=Excel 12.0;Persist Security Info=False";
using (OleDbConnection excelcon = new OleDbConnection(excelconnectionstring))
{
using (OleDbCommand command = new OleDbCommand("", excelcon))
{
command.CommandText = "Select * from [Sheet1$]";
excelcon.Open();
using (OleDbDataReader reader = command.ExecuteReader())
{
DataTable table = new DataTable();
table.Columns.Add("Name");
table.Columns.Add("EmpID");
}
}
}