0

我试图从我的数据库中的同一行更新列的值。

这是我的代码:

 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,而不是正确地来自我视图中的表单的值。

我已经设置了一个断点并检查了变量中的哪些值,它们都具有正确的值。

我做错了什么?

有人可以帮我吗?

4

1 回答 1

3

不要在实际查询中将参数括在引号中。试试这个:

cmd.CommandText = @"Update Content Set Des=@Des, Sc=@Sc Where ID_Img=@Id_Img";

这些参数足够聪明,可以根据它们的数据类型知道它们是否需要用引号括起来。

于 2013-09-09T14:49:05.997 回答