2013-03-30 25 views
0

我创建一个简单的示例来创建问题easyer。 所以在我的C#项目中,我创建了一个带有文章的mdf数据库。然后我在程序中连接数据库并从表格文章中读取数据。它给我的结果,但不是最新的。 如果我有一个结果,它会告诉我这一个。然后我在文章表中添加一篇新文章并再次运行程序,在这种情况下,程序仅向我展示第一篇文章。但如果我“构建解决方案”,它找到了所有这些。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

检查您的MDF文件的属性。 “复制到输出目录”的价值是什么? – Steve

+0

值为“始终复制”。我保留默认。 – Clem

回答

0

如果你的MDF文件具有财产Copy To Output Directory设置为Copy Always,则每次你建立你的应用程序的数据库文件的新副本从项目目录输出目录(BIN\DEBUGBIN\RELEASE)复制。
当然,这摧毁你已经在你的程序的先前运行

更改属性所做的任何更改Copy if Newer

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

+0

我试过这个,但仍然是相同的结果 – Clem

+0

你可以添加实际的连接字符串到你的问题? – Steve

+0

好吧,已添加。 – Clem

相关问题