【发布时间】:2015-07-01 12:45:15
【问题描述】:
我在开发可在其他计算机上运行的应用程序时遇到问题。此应用程序使用位于同一项目目录中的本地数据库( .mdf )。
当我发布应用程序并在另一台计算机上安装时,它可以正确安装,但是当我运行时出现与数据库连接相关的错误。
以下是app.config中ConnectionStrings的代码。
<?xml version="1.0"?>
<configuration>
<system.windows.forms jitDebugging="true" />
<configSections>
</configSections>
<connectionStrings>
<clear />
<add name="ConexaoBD" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\bd_Cadastro.mdf;Integrated Security=True;Connect Timeout=30" providerName="System.Data.SqlClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>
这里是ConnectionString 在我的类中使用,它连接到数据库。
private string str_conexao = ConfigurationManager.ConnectionStrings["ConexaoBD"].ConnectionString;
这是我在另一台计算机上运行应用程序时收到的错误消息:
************** Exception Text **************
System.ArgumentException: Invalid value for key 'attachdbfilename'.
at EVO_Next_List.cls_Conexao.ExecutarDataSet(String str_sql)
at EVO_Next_List.frmPrincipal.CarregaRegistros()
at EVO_Next_List.frmPrincipal.frmPrincipal_Load(Object sender, EventArgs e)
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at MetroFramework.Forms.MetroForm.OnLoad(EventArgs e)
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Form.WmShowWindow(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at MetroFramework.Forms.MetroForm.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
有什么方法可以让应用程序识别任何计算机上的 .mdf 文件?
【问题讨论】:
-
显示
EVO_Next_List.cls_Conexao.ExecutarDataSet()里面的内容。 -
bd_Cadastro.mdf数据库文件复制到哪里?您确定|DataDirectory|快捷方式映射到此位置吗? -
你最后是怎么解决这个问题的?
标签: c# sql connection-string localdb mdf