1

在我的 C# 程序中,我遇到了一个大问题:

我将一个名为“Behgozin_DB”的 SQL 服务器数据库添加到我的项目中。我执行以下步骤来添加数据库:

  1. 在我的 SQL 服务器管理工​​作室中,我分离了我的数据库
  2. 在我的 Visual Studio 中的数据菜单中,我添加了新的数据源
  3. 我的连接字符串是:

数据源=(本地);AttachDbFilename=|DataDirectory|\DB_Behgozin.mdf;Integrated Security=True

一切正常,但是当我在关闭应用程序后将某些内容插入数据库时​​,我看不到任何数据。但是当我在我的 Visual Studio 服务器资源管理器菜单中右键单击我的表并选择显示表数据时,我的应用程序会完全读取整个数据表!

另一个问题是使用此应用程序后,即使它无法读取表中自己的数据。

它是 Visual Studio 2010 SQL Server 2008 中的 C# 项目。

4

1 回答 1

1

您的数据库文件有 2 个副本。一个在您的项目中,另一个在bin\debug. 在设计时,您编辑项目中的那个。每次您的项目更改并构建它时,项目数据库文件都会覆盖 bin\debug 中的文件,并且您正在运行时更新此文件。

为了解决这个问题,您有三个选择:

  1. 仅使用 bin\debug 中的文件。将项目数据库文件复制选项设置为“从不”(在属性窗口中),显示项目的所有文件并将 bin\debug 数据库文件添加到服务器资源管理器。注意:如果您不小心删除了 bin\debug 文件夹,您的所有更改都将消失。更改时手动将数据库文件从 bin\debug 复制到项目文件夹。

  2. 将文件放在您的 sql server 文件夹中,而不是放在您的项目中。部署时,更改连接字符串并从服务器复制数据库。

  3. 替换“|数据目录|” 带有项目数据库文件的绝对路径的宏。部署时,只需将其改回“|DataDirectory|”

于 2012-08-19T19:04:17.877 回答