去年给客户做了一个招生考试系统,一年的考试都没有问题。直到第二年某个考点考试时,出现有些学生信息就是录不进系统,大致是这样的,考试前,安排考生进入等待考试列表,但是几百人中就是两个人进入考试列表不成功,别人都可以。而且数据拿过来在我公司插入成功,客户组成的局域网无论怎样都不成功。更奇怪的是,进入等待列表有两步,第一步是插入顺序表,第二步是插入学生信息表。而第一步执行成功,第二步没有成功(这些都是从后台数据库看出来的)。两个学生同样的问题。
string sql = "insert into ycity_audition(id,`order`,status) values(?id,?order,?status)";
sql = "insert into ycity_member(id,email,name,gender,birthday,idCard,mobile,sourcePlace,status,image) values(?id,?email,?name,?gender,?birthday,?idCard,?mobile,?sourcePlace,?status,?image)";
我觉得这个问题很奇葩,遂来院子里跟大虾们探讨下
这有什么奇葩的,两条脚的蛤蟆没见过,两条腿的程序员到处都是。
要找一个好的程序员不容易,要找一个差的,满地爬...
这个问题一定是数据问题了,你写SQL出来是没有用的,关键是数据库里面已有的数据,
还有就是出错的那条数据实际上的SQL语句,就是VALUE已确定的,但是又出错了的语句。
现在我拿到那两个学生的数据,在自己电脑上模拟一直没问题,sql也没问题
那很可能是这两个人的工号 在基础数据中有问题,查下学校那边的学生信息 是怎么弄的,按道理 插不进去,你们也有个 返回提示啊,系统不至于一点提示都没有啊
返回就是插入数据库不成功,我觉得应该是学生信息出错了
缓存问题?
winform也涉及到缓存问题?那岂不是很多人都会出现这种情况,但是只有两个,应该不是吧
贴sql语句没用,这个肯定是值有问题,如值里面有单、双引号,有注释号--,你打开数据库的事件跟踪器,然后在复现此问题,在事件跟踪器里面找到提交的这个完整的sql语句就能知道问题在哪里了
读取的数据都是身份证的信息,应该不会存在单双引号之类的问题吧,关键是,考试结束了,那两个学生的身份证我看不到。哎
把真正执行的sql拿出来就明白了。你自己构建的不一定是系统真正执行的。
你也知道,我只是个程序员,客户学生数据我可拿到,但是不能完全模拟当时的情况。
@你好,再见: 就因为你是个程序员,你可以监控sql语句哇。
你把那两个学生的信息贴出来看看
(2425,"", '姓名', 1, '1996-12-13', '身份证', '136********', 53, 4,"")这是其中一个的,两个人情况是一样的,audition表插入成功了,member表没插入成功