0

我正在尝试在 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;
        }
4

1 回答 1

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 之前,在代码中显式打开连接......

于 2013-10-27T22:10:22.963 回答