直接抛出错误信息
同样我们还经常看到(1366,"Incorrect string value: ’ ’ for column ‘XX’ at 1 ")
这样的问题,事实上它们是一类问题,这个不是你的SQL语句写错了,而是你的数据出现问题。我们能根据错误信息提示字段找到数据表中问题数据,发现在数据表中对应的Money字段出现空数据,形如下表
对于这样的问题,我在网上找到一种处理方法说把数据库中字段设置默认设置一个值,这样就避免了’ ‘这样的问题。但是经过我实际上手操作后,我发现并不能解决
所以既然找到了问题,那解决方法肯定不止一个,我想去判断该字段是否为’ ',如果是直接将该字段设置为null,慢是慢了点,但也是一种解决办法
if (row_values[13] == ''):
try:
self.db.prepare(f"insert into rescued values('{begin}', '{row_values[1]}', '{row_values[2]}', '{row_values[3]}','{row_values[4]}','{row_values[5]}','{row_values[6]}','{row_values[7]}','{row_values[8]}','{row_values[9]}','{row_values[10]}', '{row_values[11]}', '{row_values[12]}', null ,'{row_values[14]}','{row_values[15]}','{row_values[16]}','{row_values[17]}','{row_values[18]}','{row_values[19]}','{row_values[20]}','{row_values[21]}','{row_values[22]}')")
except Exception as e:
errorMessage = "第 %d 行出现错误,请先解决错误" % (i + 1)
print(errorMessage)
showerror("错误信息", errorMessage)
flag = 1
break