问题描述
用多线程向Access中成批导入数据时,开始执行一段时间没问题,再后就保存失败了。向Access中添加数据的语句没有错误,用SQL2K试过没有问题。得到在向获取Access添加数据时的错误为“未明确的错误”。估计可能是添加数据时,Access成受不了了,所以才报错。但想想应该是有什么办法可以解决的。向Access添加数据的部分如下://保存数据到AccesspublicstringInfoSave(stringstrDBFile,string[]Info){try{stringOLeDBConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource='"+strDBFile+"';PersistSecurityInfo=False";OleDbConnectionobjConn=newOleDbConnection(OLeDBConnectionString);OleDbCommandobjCmd=newOleDbCommand();objCmd.Connection=objConn;objCmd.CommandType=CommandType.Text;stringstrSQL="insertintoData(ID,Grade_1,Grade_2,Grade_3,BizName,BizUrl)values("+Info[0]+",'"+Info[1]+"','"+Info[2]+"','"+Info[3]+"','"+Info[4]+"','"+Info[5]+"')";objCmd.CommandText=strSQL;objConn.Open();objCmd.returnobjCmd.ExecuteNonQuery().ToString();}catch(Exceptione){return"E-"+e.Message;}}问题就在这儿,估计是不是要加个锁什么的。请大家帮我看看这个问题如何解决。多谢了。
解决方案
解决方案二:
可能是创建了太多的OleDbConnection对象了吧,放到类外,并且只在开始前Open一次,全部更新完后Close掉,再试试看。