近日,在使用C#连接数据库的时候,对数据库中的表做更新后,在当前启动项目中去显示表数据时虽然会发生一个更新,但是在结束程序运行后再去观察数据表中的记录时发现并没有发生一个变化,在重复尝试了好几次后还是同样的结果,于是就开始了我的查错之旅~
现在的场景是对一个学生信息去做一个增删查改
想到可能是出了BUG吧,于是又开启程序进行操作~
于是我就开始思考既然两边的数据都不一致的话,那么这会不会就是就是两张数据表呢
bin\Debug
下的数据库文件,而不是项目根目录下的数据库文件bin\Debug
文件下的数据库文件,所以在下一次运行起来后所查询的也是这个数据库,而根目录下的Database.mdf
数据库文件却一直没有被动过,所以没更新是正常的接下去我们就来解决一下这个问题
.mdf
结尾的数据库文件属性即可正由另一进程使用,因此该进程无法访问此文件
,然后项目被不断地重启,不过最多不会超过10次bin\DeBug
目录下的【.mdf】数据库文件,此时发现两边的数据库信息不一致,编译器就会选择去做一个更新,那么机会和根目录下的【.mdf】文件冲突了,两个进程所使用的端口号是一直的, 这类似于我们在启动Tomcat服务器出现端口号占用的情况[Database1.mdf]
是正确的// 创建一个数据库连接字符串
string connectionString = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=D:\\code\\c-sharp\\实验\\实验4\\学生成绩增删查改\\学生成绩增删查改\\Database1.mdf;Integrated Security=True";
好,到这里本文就结束了,希望能帮助到遇到困难的你 —— 2023.6.10