如何添加到Update语句中
本文关键字:Update 语句 添加 何添加 | 更新日期: 2023-09-27 18:18:44
我正在尝试更新我的数据库(表)并使活动列= 1。我有不同国家和参数的重复报告(subject_text)。
subject_text countries parameter1 active
usage GB 1 0
usage FR 2 0
usage PT 1 0
closed GB,FR,PT 1 0
这是一个例子,我的数据库看起来像(简化,有更多的参数和更多的报告,但我希望你能看到我的意思是重复的报告名称)
这是我的。cs文件,以显示我试图执行的更新。Subject_text是下拉列表形式,因此用户可以选择要更新的报表。这些报告(subject_text)被硬编码到我的ASPX页面中。当选择一个报告,如"关闭",更新工作,但当涉及到更新报告,其中有不同的国家或参数,我有麻烦。
Masterpage master
将此页面链接到。getdropdownlistvalue所在的位置
当下拉列表包含不同的元素时,我如何添加更新语句?
protected void RunReport_Click (object sender, System.EventArgs e)
{
MasterPage master = (MasterPage)this.Master;
string sqlStatement = "";
sqlStatement = @"UPDATE [TODD].[dbo].[Table] SET Active='1' WHERE subject_text = @report";
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(sqlStatement, conn);
cmd = new SqlCommand(sqlStatement, conn);
cmd.Parameters.AddWithValue("@report", ddl_Report.SelectedItem.Text);
string getcountry = master.getDropDownListValue(ddl_country, false);
if (!string.IsNullOrWhiteSpace(getcountry))
{
cmd.Parameters.AddWithValue("@country", getcountry);
sqlStatement += "AND countries = @country";
}
string getparam1 = master.getDropDownListValue(Param1, false);
if (!string.IsNullOrWhiteSpace(getparam1))
{
cmd.Parameters.AddWithValue("@param1", getparam1);
sqlStatement += "AND parameter1 = @param1";
}
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
感谢您的宝贵时间。
move
SqlCommand cmd = new SqlCommand(sqlStatement, conn);
到下面的字符串sqlStatement
的最终计算
在基于sqlStatement
创建SqlCommand
之前,应该先向sqlStatement
添加新文本
同样,您不需要两次调用new SqlCommand(sqlStatement, conn);
为什么不直接传递身份呢?
UPDATE [TODD].[dbo].[Table] SET Active='1' WHERE RecordID = @RecordId