当前位置:编程学习 > C#/ASP.NET >>

InvalidOperationException 异常

我用obedb上传了一个EXCEL文件到服务器,然后遍历sheet1的数据,将数据插入到sql server 2005数据库中,记录稍微多一点(100左右)的时候就会出现假死,跟踪后发现会出现InvalidOperationException 异常,请高手指教!
下面是插入数据库的代码段,在线等答案,解决问题加分!!!

            for (int i = 0; i < dr.Length; i++)
            {
                try//校验Excel第一行数据是否包含数据库字段名
                {
                    username = dr[i]["username"].ToString();//[username ] excel列名【名称不能变,否则就会出错】
                    realname = dr[i]["realname"].ToString();
                    usertype = dr[i]["usertype"].ToString();
                    department = dr[i]["department"].ToString();
                }
                catch
                {
                    Response.Write("<script>alert('Excel表格式与数据库不一致,请修改后再上传!')</script>");   //当Excel表格式不正确时,对用户进行提示
                    DeleteFile(savePath);
                    return;
                }
                if ((username != ""))
                {
                    string sql = "insert into users (username,realname,usertype,department) values('" + username + "','" + realname + "','" + usertype + "','" + department + "')";
                    try
                    {
                        dataBase.Command(sql);
                        j++;
                    }
                    catch (Exception ex)       //捕捉异常
                    {
                        error += "第" + (i + 2) + "行:\t<em style='color:red;font-sixe:25px;'>" + username + "</em>" + ex.Message + "<br>";
                    }
                }
                else
                {
                    error += "第" + (i + 2) + "行:\t记录为空,此行记录无法插入!请修改用户再进行插入<br>";//若用户存在,将已存在用户信息打出,并提示此用户无法插入
                }
            }
--------------------编程问答-------------------- 从代码看不出什么.......是不是字段值类型引发的? --------------------编程问答--------------------
引用 1 楼 isjoe 的回复:
从代码看不出什么.......是不是字段值类型引发的?


不是字段类型引发的

 
 记录数为几十条的时候就很正常,记录为100多以上的时候就会出现假死,一直卡在那里不走咯。。一直找不到原因,
  
 有没有可能是用for循环访问数据库太频繁导致的? --------------------编程问答-------------------- 哪行报告的错误?你应该
username = dr[i]["username"]==null?"":dr[i]["username"].ToString(); 进行容错 --------------------编程问答--------------------
引用 3 楼 net_lover 的回复:
哪行报告的错误?你应该
username = dr[i]["username"]==null?"":dr[i]["username"].ToString(); 进行容错

调试不出哪个地方错误,只有数据记录过多的时候才有可能出这个异常


刚刚才接触不是很懂,

个人感觉是过多的访问数据库导致的..求教高手哇!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,