2014-09-12 19 views
0

有人可以帮我吗?如何通过代码找到连接字符串sql服务器不属性

每当我切换计算机,我必须再次复制连接字符串。我不想这样做。有没有其他方法可以找到它?我正在使用Visual Studio 2013和C#。

我已将应用程序保存在闪存驱动器中,因此我可以在任何计算机上使用它。但它只适用于我的电脑。

con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=H:\DataBaseApp\DataBaseApp\DB.mdf;Integrated Security=True"); 
con.Open(); 

这就是我正在使用的,但如果有人告诉我如何不使用这个,我将不胜感激。

+0

您的闪存驱动器是否总是被安装为所有使用该驱动器的计算机上的'H:'驱动器? – 2014-09-12 20:46:27

回答

0

1)创建连接字符串属性

2)连接字符串添加到Web配置。 DataSource应该像TestDataBase这样的别名。

3)从web配置值填充连接字符串属性。

4)在名为TestDataBase的当前PC上添加Sql Alias。

当你转到另一台PC时,你应该只配置新的SQL别名。

在这种情况下,多个用户可以在不更改代码的情况下工作(示例源代码管理)。

0

您可以将连接字符串保存在任何文本文件中,例如:conn.txt并将其放在bin \ Debug文件夹中。现在,您可以使用此代码在运行时读取它。

string path = Path.Combine(Application.StartupPath, "conn.txt"); 
string connStrg = System.IO.File.ReadAllText(path); 
using (SqlConnection cnn = new SqlConnection(connStrg)) 
{ 
    ... 
} 

当您发布您的应用程序时,您需要在应用程序的安装位置创建该文件。我的意思是,如果您的应用程序安装在任何特定的驱动器,如D:\\MyFolder\\MyApp.exe那么您的conn.txt文件应创建在D:\\MyFolder

+0

但是当我将改变PC路径也将改变,我再次必须复制连接字符串。 – 2014-10-14 14:05:25

+0

我想自动获得连接字符串 – 2014-10-14 14:05:51

+0

hmm ..在这种情况下,您需要找出可用的sql server。如果有多于一个,则只需选择一个。你可以检查这个[回答](http://stackoverflow.com/a/10781356/3761928)知道如何找出可用的sql server。对于sql认证,动态连接可能有不同的id-password。因此,如果您尝试连接网络服务器,则必须使用Windows身份验证连接数据库,并且可能无法在不创建命名管道的情况下连接服务器。 – Shell 2014-10-15 03:24:52

相关问题