当无法连接到第一个服务器时,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();
        }


    }