程序启动时C#mdf数据库不会更新

时间:2013-03-30 10:47:19

标签: c# mdf

我创建了一个简单的例子来创建问题easyer。 所以在我的c#项目中,我用文章创建了一个mdf数据库。然后我在我的程序中连接数据库并从表文章中读取值。它给了我结果,但不是最新的结果。 如果我有一个结果,它会告诉我这个。然后我进入文章表添加一篇新文章并再次运行程序,在这种情况下,程序只向我显示第一个。但如果我“构建解决方案”,它会找到所有这些。

我该怎么办?我希望,该程序将在启动时获得最新结果。

SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True");

try
{
     cn.Open();

     string sqlQuery = "SELECT * FROM Articles";
     SqlCommand sqlCommand = new SqlCommand(sqlQuery, cn);
     SqlDataReader sqlDataRead = sqlCommand.ExecuteReader();

     while (sqlDataRead.Read())
     {
         MessageBox.Show(Convert.ToString(sqlDataRead["ArticleLabel"]));
     }

     sqlDataRead.Close();
     sqlDataRead.Dispose();
     sqlCommand.Cancel();

     cn.Close();
 }
 catch (Exception) { MessageBox.Show("Database error!"); Application.Exit(); }

1 个答案:

答案 0 :(得分:0)

如果您的MDF文件的属性Copy To Output Directory设置为Copy Always,则每次构建应用程序时,都会将数据库文件的新副本从项目目录复制到输出目录({{ 1}}或BIN\DEBUG) 当然,这会破坏您在之前的程序运行中所做的任何更改

将属性更改为BIN\RELEASE

此外,不要被您在服务器管理器Windows中看到的内容所迷惑。那里的连接不能指向Output目录中的数据库,而是指向Project Directory中没有写任何东西的数据库。