我正在写一个函数,从一个列表框中选取多个选定的项并将值传递给一个SQL查询,以便在从另一个表中选择过滤值后将值插入到表中。我已经输入的代码如下,它似乎并没有工作(问题是我传递字符串到查询的方式。传递C#字符串作为SELECT参数的SQL参数
string lbSites = "";
protected void Button1_Click1(object sender, EventArgs e)
{
string cns = "server=abc;database=testDB;Trusted_Connection=True";
using (SqlConnection con = new SqlConnection(cns))
{
using (SqlCommand command = con.CreateCommand())
{
command.CommandText = "INSERT INTO Activity (Hostname,Site,Status,System_Dept,Business_Dept)"
+ "SELECT * FROM Inventory WHERE Site IN ("+lbSites+");"
;
con.Open();
command.Parameters.AddWithValue("@lbSites", lbSites);
command.ExecuteNonQuery();
con.Close();
}
}
}
protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (ListBox1.Items.Count > 0)
{
for (int i = 0; i < ListBox1.Items.Count; i++)
{
if (ListBox1.Items[i].Selected)
{
lbSites += "'" + ListBox1.Items[i].Value + "', ";
}
}
}
}
您的代码称为SQL注入一个严重的安全问题 - 请在参数化查询,阅读起来...... – Yahia
你的LINQ和Lambda技术看起来不错(不确定你的SQL寿命),为什么你不去LINQ to SQL选项? –