请教:导入excel时如果出错,如何释放正在读取的excel文件 如果读取excel文件时出错,之后再运行程序就提示文件访问被拒绝,有其他用户在使用。如何解决呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 OleDbConnection myConn = new OleDbConnection(strCon);//创建一个OLEDBC的链接 myConn.Open();//打开数据库的连接,得到一个数据集 DataSet myDataSet = new DataSet(); string StrSql = "Select * From [" + StyleSheet + "$]"; OleDbDataAdapter myCommand = new OleDbDataAdapter(StrSql, myConn); myCommand.Fill(myDataSet, "[" + StyleSheet + "$]"); myCommand.Dispose(); DataTable dt = myDataSet.Tables["[" + StyleSheet + "$]"]; myConn.Close();//关闭数据库连接 myCommand.Dispose(); 把myConn.Close();放到finally里面试试 FileStream操作excel文件.再释放资源或多线程操作 OleDbConnection myConn = new OleDbConnection(strCon);//创建一个OLEDBC的链接 myConn.Open();//打开数据库的连接,得到一个数据集 DataSet myDataSet = new DataSet(); string StrSql = "Select * From [" + StyleSheet + "$]"; OleDbDataAdapter myCommand = new OleDbDataAdapter(StrSql, myConn); myCommand.Fill(myDataSet, "[" + StyleSheet + "$]"); myCommand.Dispose(); DataTable dt = myDataSet.Tables["[" + StyleSheet + "$]"]; myConn.Close();//关闭数据库连接 myCommand.Dispose(); 如果读取excel文件时出错,之后再运行程序就提示文件访问被拒绝,有其他用户在使用。如何解决呢?看你是怎么读取的!如果使用类似这样的方式:public DataSet ExcelToDS(string Path){ string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;"; OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); string strExcel = ""; OleDbDataAdapter myCommand = null; DataSet ds = null; strExcel="select * from [sheet1$]"; myCommand = new OleDbDataAdapter(strExcel, strConn); ds = new DataSet(); myCommand.Fill(ds,"table1"); return ds;}那么你应该确保释放conn!如果你是使用vsto,则需要调用Excel.Application.Exit(); VS2010 打包的问题 在安装类中修改文件属性 如何查看return 返回值。 wave->wma文件,报COMException异常 请问关于根据XML文件动态加载控件到treeview上的方法。 求 C#3.0 , WPF 学习书籍 c#怎样判断调用的外部控制台程序是否执行完毕? web在A服务器 现在需求是把web要上传的文件保存到B服务器 如何在控件事件里触发另一个事件? 。net新手想单装c#但出现意想不到的情况…… 求一个 C# 操作数据库的完整类 请求这样的委托为什么得不到结果呢,结果总是空的?急! 在线更新问题
myConn.Open();//打开数据库的连接,得到一个数据集
DataSet myDataSet = new DataSet();
string StrSql = "Select * From [" + StyleSheet + "$]";
OleDbDataAdapter myCommand = new OleDbDataAdapter(StrSql, myConn);
myCommand.Fill(myDataSet, "[" + StyleSheet + "$]");
myCommand.Dispose();
DataTable dt = myDataSet.Tables["[" + StyleSheet + "$]"];
myConn.Close();//关闭数据库连接
myCommand.Dispose();
或多线程操作
myConn.Open();//打开数据库的连接,得到一个数据集
DataSet myDataSet = new DataSet();
string StrSql = "Select * From [" + StyleSheet + "$]";
OleDbDataAdapter myCommand = new OleDbDataAdapter(StrSql, myConn);
myCommand.Fill(myDataSet, "[" + StyleSheet + "$]");
myCommand.Dispose();
DataTable dt = myDataSet.Tables["[" + StyleSheet + "$]"];
myConn.Close();//关闭数据库连接
myCommand.Dispose();
如何解决呢?看你是怎么读取的!如果使用类似这样的方式:
public DataSet ExcelToDS(string Path)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string strExcel = "";
OleDbDataAdapter myCommand = null;
DataSet ds = null;
strExcel="select * from [sheet1$]";
myCommand = new OleDbDataAdapter(strExcel, strConn);
ds = new DataSet();
myCommand.Fill(ds,"table1");
return ds;
}
那么你应该确保释放conn!如果你是使用vsto,则需要调用Excel.Application.Exit();