向Access数据库插⼊数据时遇见的⼩⼩问题
记得前⼀次⽤Access数据库已是多年前的事了,那时还在学校混⽇⼦。
这次,由于⼀个实验性的⼩项⽬,再次接触Access数据库(Access2007)。在使⽤Access数据库的过程中,遇见⼀个⼩⼩的问题,问
题虽⼩,但是很纠结。
问题就是:我在Debug模式下,向Access数据库插⼊数时,数据明明插⼊成功了(因为界⾯刷新时重新获取的数据中已经包含此条数据
了,且单步跟踪代码时,ExecuteNonQuery()⽅法返回值也为1,说明插⼊成功了),但是停⽌Debug后,再次启动程序,发现数据并没
有被插⼊,因为界⾯刷新时获取的数据源中并不包含此条数据,查看数据库⽂件,发现也没有此条记录。
问题调查:通过代码跟踪及对数据库连接等对象值的监视,发现不存在任何异常之处,也就是说数据应该是成功插⼊了。这下⼦让哥纠结
了,问题到底出在哪⾥呢。
问题解决:通过查阅资料发现,在VS的Debug模式下调试程序时,VS都会从指定的⽬录拷贝⼀份Access数据库⽂件到Debug⽬录下⾯,
⽽真正被修改数据的也是Debug下⾯的那个数据库⽂件。所以就出现了前⾯所描述的现象,每次调试时显⽰插⼊成功,但是退出Debug环
境再进⼊时就不⾏了,那是因为再次进⼊时,VS会再次从指定的⽬录拷贝⼀份Access数据库⽂件到Debug⽬录下⾯,所以数据还是以前
的,没有发⽣改变。另外,直接运⾏Debug下⾯的exe⽂件会发现⼀切正常,因为这时不会导致VS的拷贝发⽣。access是什么意思啊了
那这个问题怎么解决的呢,我是将数据库的链接地址改为了⼀个绝对地址就可以了。
刚开始:
<add name="AccountBookConnectionString"
connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\Data\accountbook.accdb;Persist Security Info=True"
providerName="System.Data.OleDb" />
</connectionStrings>
修改后:
<add name="AccountBookConnectionString"
connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\MyWork\project\201307\SmallAccountBook\SmallAccountBook\SmallAccountBook\D providerName="System.Data.OleDb" />
</connectionStrings>
我个⼈认为,修改成绝对地址后,VS每次就会访问绝对地址所指的数据库⽂件,尽管拷贝操作还会进⾏(通过实验,发现仍会拷贝⼀份数
据库⽂件⾄Debug⽬录下⾯,但是应该不会对其进⾏操作)。
问题虽⼩,但是有点纠结。呵呵,还是不熟悉导致的,看来还是得多实验多总结啊。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论