gpt4 book ai didi

c# - 在多个连接c#中执行SQL

转载 作者:太空宇宙 更新时间:2023-11-03 21:07:32 25 4
gpt4 key购买 nike

这是我的代码,在组合框中选择一个连接字符串时效果很好

我怎样才能在多个连接中通过一键点击而不是一个一个地执行相同的 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 Injection ,您可以使用参数化查询进行修复。

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

当您在using block 中时,您不需要Close() 连接。使用自动执行此操作。此外,当您创建一个 SqlConnection 对象时,您可以打开一个连接,无需进行 if 检查。

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();

}
}

关于c# - 在多个连接c#中执行SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40237258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com