如何添加到Update语句

时间:2015-10-21 14:44:51

标签: c# sql asp.net

我正在尝试更新我的数据库(表)并使活动列= 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文件,用于显示我正在尝试执行的更新.Active_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();

感谢您的时间。

2 个答案:

答案 0 :(得分:3)

移动

SqlCommand cmd = new SqlCommand(sqlStatement, conn);

到字符串sqlStatement

的最终计算之下

sqlStatement基于SqlCommand

创建sqlStatement之前,应先向new SqlCommand(sqlStatement, conn);添加新文字

另外,您无需再拨打margin-top

答案 1 :(得分:1)

你为什么不传递身份?这更清洁。

UPDATE [TODD].[dbo].[Table] SET Active='1' WHERE RecordID = @RecordId