日期:2014-05-18  浏览次数:20647 次

C#winfrom与access数据库的问题
这真是一个从没有遇见过的Bug。
愁了一晚上,愣是没有一点头绪,抓破头皮啊啊啊。
关于更新access数据:
我在程序测试的时候(运行程序)通过gridview,我确实可以看见insert、delete和updata成功了,gridview上面能够刷新数据,这玩意绝对做不得假,毕竟它是绑定了数据源的,但是让人愁的就是,我关掉程序后,返回数据库看,却什么东西都没有!这是算是见鬼吗?!
SQL语句以及程序结构检查过多遍,自己写的自己检查也有难度,所以不排除结构问题,但是可以排除SQL语句的问题,因为sql语句是在数据库里单独测试可行后才移植的。
接着再来看程序,东西本身就简单,所以如果程序长就算了,但是程序语句简单的一逼了,都不知道敲过多少次这破coding了!就是既没有MVC也没有aLINQ或者实体模式什么的东西,完完全全裸奔的connection,open,commnd.ExecuteNonQuery()加上close;这么简单的代码愣是看了一个小时,但翻来覆去真不知道是什么原因。
现在考虑一下数据库的问题,客户要求给access加密,于是使用了比较简单的加密,就是独占的时候设置密码,接着我只要把密码写在app.config里面就可以,这样安装过去的程序就不可以直接打开数据库,但是可以通过程序访问。
会不会是这个地方的问题?
还有access和MSSql之间除了语法稍微有一点差别外,是不是从程序里做更新还要有别的注意??!

------解决方案--------------------
你的数据库文件放在另一个目录的App_Data文件夹下,当程序编译时会复制它的备份到Debug目录下的App_Data文件夹,所以你调试运行时能改变数据库的内容,但是关闭调试再打开后IDE已经将Debug目录下的数据库文件恢复成原来的文件了。在开发环境中有App_Data文件夹下的数据库文件属性改为不复制就行了。
------解决方案--------------------
估计是LZ测试时调用的是你项目的DEBUG的目录下的*.mdf文件,改动的是 项目下的*.mdf文件。

把项目下的mdf文件放到你项目的DEBUG的目录下估计就有了
------解决方案--------------------
探讨

引用:

你的数据库文件放在另一个目录的App_Data文件夹下,当程序编译时会复制它的备份到Debug目录下的App_Data文件夹,所以你调试运行时能改变数据库的内容,但是关闭调试再打开后IDE已经将Debug目录下的数据库文件恢复成原来的文件了。在开发环境中有App_Data文件夹下的数据库文件属性改为不复制就行了。


就是这样!!!
可恶……