向Access数据库插入数据时遇见的小小问题

记得前一次用Access数据库已是多年前的事了,那时还在学校混日子。

这次,由于一个实验性的小项目,再次接触Access数据库(Access2007)。在使用Access数据库的过程中,遇见一个小小的问题,问题虽小,但是很纠结。

问题就是:我在Debug模式下,向Access数据库插入数时,数据明明插入成功了(因为界面刷新时重新获取的数据中已经包含此条数据了,且单步跟踪代码时,ExecuteNonQuery()方法返回值也为1,说明插入成功了),但是停止Debug后,再次启动程序,发现数据并没有被插入,因为界面刷新时获取的数据源中并不包含此条数据,查看数据库文件,发现也没有此条记录。

问题调查:通过代码跟踪及对数据库连接等对象值的监视,发现不存在任何异常之处,也就是说数据应该是成功插入了。这下子让哥纠结了,问题到底出在哪里呢。

问题解决:通过查阅资料发现,在VS的Debug模式下调试程序时,VS都会从指定的目录拷贝一份Access数据库文件到Debug目录下面,而真正被修改数据的也是Debug下面的那个数据库文件。所以就出现了前面所描述的现象,每次调试时显示插入成功,但是退出Debug环境再进入时就不行了,那是因为再次进入时,VS会再次从指定的目录拷贝一份Access数据库文件到Debug目录下面,所以数据还是以前的,没有发生改变。另外,直接运行Debug下面的exe文件会发现一切正常,因为这时不会导致VS的拷贝发生。

那这个问题怎么解决的呢,我是将数据库的链接地址改为了一个绝对地址就可以了。

刚开始:

  
  

修改后:

  
  

我个人认为,修改成绝对地址后,VS每次就会访问绝对地址所指的数据库文件,尽管拷贝操作还会进行(通过实验,发现仍会拷贝一份数据库文件至Debug目录下面,但是应该不会对其进行操作)。

问题虽小,但是有点纠结。呵呵,还是不熟悉导致的,看来还是得多实验多总结啊。

你可能感兴趣的:(C#,SQLServer)