当无法连接到第一个服务器时,C# 将不同的连接字符串更改为 SQL 服务器
C# change to different connection string to SQL Server when can't connect to first one
我想在家里和外面连接到 SQL 服务器数据库。我可以通过两种方式连接,但我每次在家时都需要将连接字符串从 public ip 更改为本地。是否可以编写一个函数,每当它无法通过远程 ip 连接时在连接字符串中使用其他主机名?
请帮助我是初学者:)
试试这个:
//.....
//.....
//..... YOUR CODE
try
{
con = new SqlConnection(check_Active_Connection_String()); // Add this
con.Open();
SqlCommand r = new SqlCommand("SELECT Login FROM Users WHERE Login not like '%Wszyscy%'", con);
//.... YOUR CODE
//.... YOUR CODE
希望对您有所帮助。
这是我添加你的 Dheeraj 后的代码。错误在 con.Open();行
命名空间 WindowsFormsApplication1
{
public 部分 class Form1 : 表格
{
SqlConnection con;
private string CS_1 = @"Data Source=99.88.88.156,33400\SQLMINFOR;Initial Catalog=Minfor;Integrated Security=False;Password=****;User ID=sa;";
private string CS_2 = @"Data Source=BACKUP-MIN\SQLMIN;Initial Catalog=Minfor;Integrated Security=False;Password=****;User ID=sa;";
public string check_Active_Connection_String()
{
string main_CS = "";
if (try_CS(CS_1))
{
main_CS = CS_1;
}
else if (try_CS(CS_2))
{
main_CS = CS_2;
}
return main_CS;// use main_CS for your connection string further
}
private bool try_CS(string CS)
{
try
{
using (con = new SqlConnection(CS))
{
con.Open();
return true;
}
}
catch (Exception exp)
{
return false;
}
}
public Form1()
{
InitializeComponent();
textBox2.PasswordChar = '*';
try
{
con.Open();
SqlCommand r = new SqlCommand("SELECT Login FROM Users WHERE Login not like '%Wszyscy%'", con);
SqlDataReader dr = r.ExecuteReader();
while (dr.Read())
{
comboBox1.Items.Add(dr["Login"]);
}
dr.Close();
dr.Dispose();
}
catch(SqlException ex)
{
MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.Exit();
}
}
我想在家里和外面连接到 SQL 服务器数据库。我可以通过两种方式连接,但我每次在家时都需要将连接字符串从 public ip 更改为本地。是否可以编写一个函数,每当它无法通过远程 ip 连接时在连接字符串中使用其他主机名? 请帮助我是初学者:)
试试这个:
//.....
//.....
//..... YOUR CODE
try
{
con = new SqlConnection(check_Active_Connection_String()); // Add this
con.Open();
SqlCommand r = new SqlCommand("SELECT Login FROM Users WHERE Login not like '%Wszyscy%'", con);
//.... YOUR CODE
//.... YOUR CODE
希望对您有所帮助。
这是我添加你的 Dheeraj 后的代码。错误在 con.Open();行
命名空间 WindowsFormsApplication1
{
public 部分 class Form1 : 表格
{
SqlConnection con;
private string CS_1 = @"Data Source=99.88.88.156,33400\SQLMINFOR;Initial Catalog=Minfor;Integrated Security=False;Password=****;User ID=sa;";
private string CS_2 = @"Data Source=BACKUP-MIN\SQLMIN;Initial Catalog=Minfor;Integrated Security=False;Password=****;User ID=sa;";
public string check_Active_Connection_String()
{
string main_CS = "";
if (try_CS(CS_1))
{
main_CS = CS_1;
}
else if (try_CS(CS_2))
{
main_CS = CS_2;
}
return main_CS;// use main_CS for your connection string further
}
private bool try_CS(string CS)
{
try
{
using (con = new SqlConnection(CS))
{
con.Open();
return true;
}
}
catch (Exception exp)
{
return false;
}
}
public Form1()
{
InitializeComponent();
textBox2.PasswordChar = '*';
try
{
con.Open();
SqlCommand r = new SqlCommand("SELECT Login FROM Users WHERE Login not like '%Wszyscy%'", con);
SqlDataReader dr = r.ExecuteReader();
while (dr.Read())
{
comboBox1.Items.Add(dr["Login"]);
}
dr.Close();
dr.Dispose();
}
catch(SqlException ex)
{
MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.Exit();
}
}