我创建了一个简单的例子来创建问题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(); }
答案 0 :(得分:0)
如果您的MDF文件的属性Copy To Output Directory
设置为Copy Always
,则每次构建应用程序时,都会将数据库文件的新副本从项目目录复制到输出目录({{ 1}}或BIN\DEBUG
)
当然,这会破坏您在之前的程序运行中所做的任何更改
将属性更改为BIN\RELEASE
此外,不要被您在服务器管理器Windows中看到的内容所迷惑。那里的连接不能指向Output目录中的数据库,而是指向Project Directory中没有写任何东西的数据库。