c#便携式数据库连接字符串

时间:2016-06-06 22:24:01

标签: c# asp.net database connection

下面是我在Visual Studio中构建的asp.net项目的连接字符串。但是,一旦包含prokject的文件夹试图在另一台计算机上打开,我就会出现数据库连接错误,有没有办法让这些连接字符串可移植,以便项目不会只在我的计算机上运行?

<connectionStrings>
    <add name="nas_connect" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|app_code\nas.mdf;Integrated Security=True"
      providerName="System.Data.SqlClient" />
    <add name="nasConnectionString" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=&quot;app~_code\nas.mdf&quot;;Integrated Security=True;Connect Timeout=30"
      providerName="System.Data.SqlClient" />
    <add name="nasConnectionString2" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=&quot;App_code\nas.mdf&quot;;Integrated Security=True;Connect Timeout=30"
      providerName="System.Data.SqlClient" />
    <add name="nasConnectionString3" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=&quot;\App_code\nas.mdf&quot;;Integrated Security=True;Connect Timeout=30"
      providerName="System.Data.SqlClient" />
    <add name="nasConnectionString4" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=&quot;\App_code\nas.mdf&quot;;Integrated Security=True;Connect Timeout=30"
      providerName="System.Data.SqlClient" />
    <add name="insert into" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=&quot;\App_code\nas.mdf&quot;;Integrated Security=True;Connect Timeout=30"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

非常感谢任何帮助

谢谢。

2 个答案:

答案 0 :(得分:0)

首先确保将数据库文件复制到另一台计算机。我的意思是mdf和ldf文件。(这些文件应该在WebRoot/App_code/。)并且还要确保将SqlLocalDB.msi安装到另一台计算机上。 此外,如果您想在不同的环境中使用不同的配置,我建议您使用配置文件转换。您可以使用例如SlowCheetah来使用VS工具和扩展程序下载哪一个。

参考文献:

1) https://msdn.microsoft.com/en-us/library/hh510202.aspx

2)SlowCheetah

答案 1 :(得分:0)

尝试为连接字符串创建一个类,这样您就可以从应用程序的任何位置访问连接字符串。确保您的数据库文件.mdf和.ldf文件位于应用程序的bin / Debug文件夹中。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;

namespace Loacal_DataBase
{
class Connection
{
   static string startupPath = System.IO.Directory.GetCurrentDirectory();      
   static readonly string connectString = @"Data Source=(LocalDB)\v11.0;Integrated Security=True;AttachDbFilename=" + startupPath + "\\Local_DB.mdf";
   public SqlConnection connection = new SqlConnection(connectString);

}
}