多个连接字符串

查理20

成员
已加入
2012年8月27日
留言内容
11
编程经验
Beginner
我有一个winforms应用程序&根据有关SQL身份验证的用户选择,有2种可能的连接字符串:-

-使用(var con = new SqlConnection(String.Format("数据源= {0}; database = {1};集成安全性=真",Sql_ServerName,Sql_DataBaseName)))
-使用(var con = new SqlConnection(String.Format("数据源= {0}; database = {1};用户ID = {2};密码= {3};",Sql_ServerName,Sql_DataBaseName,txt_SqlAuth_UserName.Text,txt_SqlAuth_Password.Text)))

第一个用于Windows身份验证,第二个用于为SQL Server输入特定的用户名/密码(例如sa)。

除这些con字符串外,其余代码相同。如何根据用户做出的选择执行IF / THEN类型语句?

我尝试过IF / THEN&在变量块中也声明了var con,但都没有成功。

任何提示,指针等?
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,566
地点
悉尼,澳大利亚
编程经验
10+
不要将String.Format用于连接字符串。每个ADO.NET提供程序都有一个用于处理连接字符串的连接字符串构建器类。在您的情况下,我将使用集成安全性的默认连接字符串作为默认连接字符串,然后在且仅当用户选择其他方式(例如,
var builder = new SqlConnectionStringBuilder();

builder.DataSource = dataSource;
builder.InitialCatalog = initialCatalog;
builder.IntegratedSecurity = useIntegratedSecurity;

if (!useIntegratedSecurity)
{
    builder.UserID = userID;
    builder.Password = password;
}

using (var connection = new SqlConnection(builder.ConnectionString))
{
    // Use connection here.
}
 
最佳 底部