在Switch语句中使用update命令

时间:2013-10-27 22:05:06

标签: c# asp.net switch-statement

我正在尝试在switch case语句中使用和更新命令但是当我运行它时,它根本没有更新,不知道我在这里做错了什么。这是我的代码:

protected void update()
{
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["myConnection"].ConnectionString);
    SqlCommand Mycmd = new SqlCommand();       
    SqlDataAdapter da = new SqlDataAdapter("SELECT ID, Name, Stage from Mytable  WHERE ID=  @ID ", con);
    DataTable dt = new DataTable();
    da.SelectCommand.Parameters.AddWithValue("@ID", (ID));
    da.Fill(dt); 

    foreach (DataRow row in dt.Rows)
    {
        switch (Convert.ToString(row["Stage"]))
        {
            case "1":                    
                string myStage= txtStageLevel.Text;
                Mycmd.CommandText = "UPDATE Mytable SET Stage=@myStage";
                break;
        }

1 个答案:

答案 0 :(得分:2)

缺少ExecuteNonQuery调用,参数@myStage和Connection的设置未分配给该命令。毕竟这可能是你将代码更改为

case "1":
    using(SqlCommand myCmd = new SqlCommand("UPDATE Mytable SET Stage=@myStage", con)
    {
       myCmd.Parameters.AddWithValue("@myStage", txtStageLevel.Text);
       myCmd.ExecuteNonQuery();
    }
    break;

并删除方法开头的MyCmd声明。

最后,在进入switch case之前,在代码中显式打开连接....