第一个错误
呵呵、、、SQL语句里 , 写成 . 了。
还是一个INSERT语句,所以一直报错
datareader未关闭
这个错误网上有很多,很多人是因为多线程编程中,reader连接的是同一个mysqlconnection。
我的这个报错是在Button的监听事件里,推测问题可能出现在这里,onclick点击一次后好像就会生成一个线程,这个问题还没来的及找资料查证。
最后解决方法就是,不同的reader连接不同的sqlconnection。这应该是个很蠢的解决方案但有效。现在记录下来,最后会重新查证并整理出报告。
3/31更新:
我一直疑惑:明明所有datareader都关闭了为什么还会报这个错。上网查到:原来
在使用数据库更新或插入语句时,大家通常使用 SqlCommand 的 ExecuteNonQuery() 方法,并且前提是定义了一个公共的数据库连接(如果每次查询时都生成新连接的话不会存在这个问题,但那样数据库占用的资源相对会高很多),在ExecuteNonQuery() 后,内部会生成一个空的 DataReader 对象,并当当前的数据库连接关闭掉后,该 DataReader 才会释放。因此在大家使用更新方法时,推荐使用 using 关键字,它作为语句,可以将它所定义范围内的对象都释放掉。
参考链接:https://blog.csdn.net/qq_33507306/article/details/93750908
改为使用using关键字后就不会出现这个错误了
现在的代码结构非常混乱,计划等中期或者所有功能都实现后修改。