c# mdf数据库在程序启动时没有更新

本文关键字:更新 启动 程序 mdf 数据库 | 更新日期: 2023-09-27 18:06:49

我创建了一个简单的例子来创建问题。所以在我的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(); }

c# mdf数据库在程序启动时没有更新

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

将属性更改为Copy if Newer

另外,不要被你在服务器管理器Windows中看到的东西所愚弄。那里的连接不能指向输出目录中的数据库,而是指向项目目录中的数据库,您不写入任何内容。