我已经硬编码了数据库的数据目录。因为我想避免它,所以我决定使用FolderBrowserDialog
并将对话框字符串存储到应用程序设置中。
这是硬编码的代码片段,它可以打开SQL连接:
AppDomain.CurrentDomain.SetData("DataDirectory", @"C:UsersOsmanDocumentsVisual Studio 2013ProjectsCompanyWPFCompanyWPF");
try
{
using (SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)v11.0;AttachDbFilename=|DataDirectory|Produkt.mdf;Integrated Security=True"))
{
con.Open();
}
}
catch (Exception ex)
{
MessageBox.Show("Errorn" + ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
}
但是当我使用应用程序设置中存储的字符串时:
AppDomain.CurrentDomain.SetData("DataDirectory",@"" + Properties.Settings.Default.ConnectionString);
try
{
using (SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)v11.0;AttachDbFilename=@|DataDirectory|Produkt.mdf;Integrated Security=True") )
{
con.Open();
}
}
catch (Exception ex)
{
MessageBox.Show("Errorn" + ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
}
则出现以下错误:
键'attachdbfilename'的值无效。
我设置了一个断点,从应用程序设置中存储的字符串的值为:
C:\Users\Osman\Documents\Visual Studio 2013\Projects\CompanyWPF\CompanyWPF\
我不知道你要做什么,但我认为这就是问题所在
using (SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)v11.0;AttachDbFilename=@|DataDirectory|Produkt.mdf;Integrated Security=True") )
用这个代替
using (SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)v11.0;AttachDbFilename=|DataDirectory|Produkt.mdf;Integrated Security=True") )
注意:从这个"@|DataDirectory| "中删除@