在多个连接中执行SQL

本文关键字:执行 SQL 连接 | 更新日期: 2023-09-27 18:14:43

这是我的代码,当在Combobox

中选择一个连接字符串时效果很好

我如何在多个连接中执行相同的SQL查询,一个按钮单击不是一个接一个??

public string connstring = "";
        private void cmbSrv_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cmbSrv.SelectedIndex == 0)
            {
                connstring = @"Data Source=tcp:10.1.0.100;Initial Catalog=Database1;User ID=user;Password=pass;MultipleActiveResultSets=true;";
            }
            else if (cmbSrv.SelectedIndex == 1)
            {
                connstring = @"Data Source=tcp:10.0.0.100;Initial Catalog=Database2 ;User ID=user;Password=pass;MultipleActiveResultSets=true;";
            }
        }
private void btnKonfirm_Click(object sender, EventArgs e)
    {
using (SqlConnection connection = new SqlConnection(connstring))
            {
                SqlCommand cmd1 = new SqlCommand();
                if (connection.State == ConnectionState.Closed)
                {
                    connection.Open();
                }
                SqlCommand command1 =
                    new SqlCommand("DELETE FROM TABLE1 WHERE ID="+textbox1+"", connection);                    

                command1.ExecuteNonQuery();

                connection.Close();
            }
}

在多个连接中执行SQL

您的代码有一些问题,如Sql注入,您可以使用参数化查询进行修复。

你没有取textbox1Text属性。修复命名,不要使用textbox1作为控件名称。命名很重要,这样其他程序员就能理解你。您的数据库表也是如此,Table1不是合适的名称。

当您处于using块时,您不需要Close()连接。使用自动执行此操作。另外,当你创建一个SqlConnection对象时,你可以打开一个连接,没有必要对它进行检查。

public void ConfirmBtn_Click(object sender, EventArgs e)
{
     string connString1 = "FirstConnectionSTring";
     string connString2 = "SecondConnectionSTring";
     ExecuteNonQuery(connString1);
     ExecuteNonQuery(connString2);
}
public void ExecuteNonQuery(string connString)
{
    using (SqlConnection connection = new SqlConnection(connString))
    {
         connection.Open();
         SqlCommand cmd =
                    new SqlCommand("DELETE FROM TABLE1 WHERE ID=@ID", connection);
         cmd.Parameters.AddWithValue("@ID", textbox1.Text);         
         cmd.ExecuteNonQuery();
    }
}