我有MDF文件,我将其用作数据库,并使用Linq-to-SQL连接到该文件。
我的连接字符串是:
<add name="TasteTeam.Properties.Settings.TasteDBConnectionString" connectionString="Data Source=(LocalDB)\v11.0; AttachDbFilename=|DataDirectory|\TasteDB.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
我的问题是,当我运行程序并将数据添加到表中时,它将添加到bin文件夹中的MDF文件中,而不是主MDF文件中。
这种情况导致每次我重新启动myprogram而不是持久保存数据时MDF文件都为空。
我该怎么办才能使MDF和垃圾箱中的tmp MDF文件成为同一文件(我已经尝试了所有“复制到输出目录”选项,但似乎无济于事)
整个AttachDbFileName =方法有缺陷-充其量!在Visual Studio中运行应用程序时,它将在.mdf
文件周围复制(从App_Data
目录复制到输出目录-通常.\bin\debug
-应用程序运行所在的目录),最有可能的是,您的INSERT
工作还不错-但您只是看错了。 mdf文件到底!
如果您要坚持使用这种方法,请尝试在myConnection.Close()
呼叫上放置一个断点-然后.mdf
使用SQL Server Mgmt Studio Express检查文件-我几乎可以确定您的数据在那里。
在真正的解决办法在我看来,将
安装SQL Server Express(并且您已经完成了此操作)
安装SQL Server Management Studio Express
在SSMS Express中创建数据库,并为其指定一个逻辑名称(例如TasteDB
)
使用其逻辑数据库名称(在服务器上创建时提供)连接到该数据库-并且不要弄乱物理数据库文件和用户实例。在这种情况下,您的连接字符串将类似于:
Data Source=.\\SQLEXPRESS;Database=TasteDB;Integrated Security=True
和其他一切是完全相同像以前一样...
另请参阅亚伦·伯特兰德(Aaron Bertrand)出色的博客文章不良习惯:使用AttachDbFileName获取更多背景信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句