我试图更新数据库中同一行的列值。
这是我的代码:
if (ModelState.IsValid)
{
using (SqlConnection cn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
{
SqlCommand cmd = new SqlCommand();
cmd = cn.CreateCommand();
cmd.CommandText = @"Update Content Set Des='@Des', Sc='@Sc' Where ID_Img=@Id_Img";
cmd.Parameters.Add("@Des", SqlDbType.VarChar);
cmd.Parameters["@Des"].Value = model.Des;
cmd.Parameters.Add("@Sc", SqlDbType.VarChar);
cmd.Parameters["@Sc"].Value = model.Sc;
cmd.Parameters.Add("@Id_Img", SqlDbType.Int);
cmd.Parameters["@Id_Img"].Value = model.Id_Img;
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
}
}
代码有效,我没有错误,但是当我在我的数据库中检查时,插入的值是@Desc和@Sc,而不是我视图中来自表单的值。
我设置了断点并检查变量中的哪些值都是正确的..
我做错了什么?
有人可以帮我一把吗?
答案 0 :(得分:3)
不要在实际查询中将参数包装在引号中。试试这个:
cmd.CommandText = @"Update Content Set Des=@Des, Sc=@Sc Where ID_Img=@Id_Img";
参数非常智能,可以根据数据类型知道是否需要用引号括起来。