问题描述
上网搜索,有的说是sqlldr缺省是64条记录出错就会退出,我的代码是循环读取EXCEL中的数据进行判断是否与数据库中相同,EXCEL已经成功上传会不会是这儿有错误,没有关闭CONN??using(OleDbConnectionconn=newOleDbConnection(AccessHelper.connStr)){for(inti=0;i<dr.Length;i++){if(i==0)//标题行,判断第一行标题是否正确{if(dr[i][0].ToString().ToUpper()!="KSH"||dr[i][1].ToString().ToUpper()!="XM"||dr[i][2].ToString().ToUpper()!="BMDDM"||dr[i][3].ToString().ToUpper()!="DL"||dr[i][4].ToString().ToUpper()!="SW"){Label1.Text="数据结构不正确,请检查!";System.IO.File.Delete(Server.MapPath("..\uploadFile")+"\"+j+".xls");//导入成功后删除上传的EXCEL文件conn.Close();return;}}else{stringKSH=dr[i][0].ToString();stringXM=dr[i][1].ToString();stringBMDDM=dr[i][2].ToString();stringDL=dr[i][3].ToString();stringSW=dr[i][4].ToString();stringQXDM=BMDDM.Substring(0,4);if(cbmddm==BMDDM||cbmddm==QXDM){}else{error+="<emstyle='color:red;font-sixe:25px'>"+KSH+"</em>报名点代码不对,请检查。<br>";//考试类别代码和名称不一致,请检查。errorNum=errorNum+1;continue;}if(DL!=""&&DL!="不补考"||SW!=""&&SW!="不补考"){error+="<emstyle='color:red;font-sixe:25px'>"+KSH+"</em>补考科目不对,请检查。<br>";//考试类别代码和名称不一致,请检查。errorNum=errorNum+1;continue;}stringsqlcheck="selectXMfromX_HKwhereKSH=@KSH";//检查报名号是否存在//DataReader查询数据成功//DataReader查询数据成功OleDbDataReaderdrcheck=AccessHelper.ExecuteReader(AccessHelper.connStr,sqlcheck,newOleDbParameter("@KSH",KSH));if(drcheck.Read()){error+="<emstyle='color:red;font-sixe:25px'>"+KSH+"</em>此考生号已存在,此行记录无法导入!请在考生信息中删除后再次导入。<br>";//若用户存在,将已存在用户信息打出,并提示此用户无法插入errorNum=errorNum+1;drcheck.Close();conn.Close();continue;}else{stringsqladd="insertintoX_HK(KSH,XM,BMDDM,DL,SW,QXDM)values(@KSH,@XM,@BMDDM,@DL,@SW,@QXDM)";AccessHelper.ExecuteNonQuery(conn,sqladd,newOleDbParameter("@KSH",KSH),newOleDbParameter("@XM",XM),newOleDbParameter("@BMDDM",BMDDM),newOleDbParameter("@DL",DL),newOleDbParameter("@SW",SW),newOleDbParameter("@QXDM",QXDM));conn.Close();}}}}
解决方案
解决方案二:
数据小于63条不会出错:(奇怪:(大于63就出现未指定的错误说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息:System.Data.OleDb.OleDbException:未指定的错误源错误:行417:if(conn.State==ConnectionState.Closed)行418:{行419:conn.Open();行420:}行421:
解决方案三:
说明你第六十四条数据有问题可能是违反了你的数据库约束什么的
解决方案四:
不会的,数据没有问题,可能是连接数之类的,我看了我打开的连接都关闭了,同样数据我分303030这样三次导入没有问题
解决方案五:
+ServerVersion“conn.ServerVersion”引发了“System.InvalidOperationException”类型的异常string{System.InvalidOperationException}一直有这个提示,是不是这个提示达到64就出错?
解决方案六:
不用datareader看一下
解决方案七:
那个DR是通过EXCEL2DS生成的,和这里没有关系吧,这里没用到DR呀
解决方案八:
DataSetds=ExecleDs(strpath,filename);DataRow[]dr=ds.Tables[0].Select();
解决方案九:
就在这条出错:(