我正在尝试在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;
}
答案 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之前,在代码中显式打开连接....