读书人

asp.net透过DataSet循环插入数据

发布时间: 2013-01-28 11:49:56 作者: rapoo

asp.net通过DataSet循环插入数据
我在将Excle中的数据导入到SQL的时候,先通过DataSet作为缓存,然后再与数据库中的2张表中的数据逐条比较,没有则进行插入。但是DataSet中的数据与Excle是一致的,循环能够执行完成,但是不知道为什么数据库中始终只有10多条数据能够正确导入

请求大神指点。在三层架构的条件下。网上看了有说是因为对数据库的断开过于频繁,导致数据丢失
[解决办法]
网上看了有说是因为对数据库的断开过于频繁,导致数据丢失
========================
不会的,你在保存DataSet时跟踪一下,看看DataSet里到底有多少条记录?另外记录的行状态(即RowState)必须为Added时才插入到数据库
[解决办法]
stuModel每次不用new吗?

else
{
stuModel=new Model.StudentInfo();
stuModel.StuNumber = dr[i]["学生学号"].ToString();

stuModel.ICNumber = dr[i]["身份证号"].ToString();
stuModel.Name = dr[i]["姓名"].ToString();
stuModel.Sex = dr[i]["性别"].ToString();
stuModel.Password = Common.Method.MD5Encryption(dr[i]["学生学号"].ToString());
stuModel.MajorName = dr[i]["专业名称"].ToString();
stuModel.DepartmentName = dr[i]["院校名称"].ToString();
stuModel.ClassName = labClassName.Text.Trim();
stuModel.Memo = dr[i]["备注"].ToString();

BLL.StudentInfoManager.Instance.Add(stuModel);
}

------解决方案--------------------


引用:
这个不用NEW吧,我只需要检查数据库中有没有与学号相同的,有就不管,没有就把新的值给前面new好的model,然后提交回数据库吧,这样应该可以吧....


Model.TeachingClassDetails model = new Model.TeachingClassDetails();
model.……


插入不了是什么意思?出错了?你看看错误提示是什么?
[解决办法]
用事务提交试试,这样情况下 我怎么感觉 是timeout 的问题
[解决办法]
而且 你还有个判断 是否已有,那么插入10多条应该很正常,其它的数据库都有这些数据?

[解决办法]
遍历DataSet拼出sql语句,用事务一次提交,应该可以写进去数据的,试试看,我们做大批量数据导入时10000+都正常导入的!

读书人网 >asp.net

热点推荐