在我的C#程序中,我遇到了一个大问题:
我将一个名为“Behgozin_DB”的SQL服务器数据库添加到我的项目中。我执行以下步骤来添加数据库:
Data Source =(local); AttachDbFilename = | DataDirectory | \ DB_Behgozin.mdf; Integrated Security = True
一切正常但是当我在关闭应用程序后向我的数据库插入内容时,我看不到任何数据。但是,当我在visual studio服务器资源管理器菜单中右键单击我的表并选择show table data时,我的应用程序完全读取整个数据表!
另一个问题是在使用此应用程序后,即使它无法在表中读取自己的数据。
它是Visual Studio 2010 SQL Server 2008中的一个C#项目。
答案 0 :(得分:1)
您的数据库文件有2个副本。一个在你的项目中,另一个在bin\debug
。在设计时,您可以编辑项目中的那个。每次项目更改并构建它时,项目数据库文件都会覆盖bin \ debug中的文件,而这个文件是在运行时更新的。
为了解决这个问题,你有三个选择:
仅使用bin \ debug中的文件。将项目数据库文件复制选项设置为“从不”(在属性窗口中),显示项目的所有文件,并将bin \ debug数据库文件添加到服务器资源管理器。警告:如果您意外删除了bin \ debug文件夹,则所有更改都将消失。更改数据库文件时,请将数据库文件从bin \ debug手动复制到项目文件夹中。
将文件放在sql server文件夹中,而不是放在项目中。部署时,更改连接字符串并从服务器复制数据库。
替换“| DataDirectory |”宏与项目数据库文件的绝对路径。部署时,只需将其更改回“| DataDirectory |”