C# 更新数据库上插入的值不正确-MVC

C# 更新数据库上插入的值不正确-MVC,c#,mysql,sql,asp.net-mvc,C#,Mysql,Sql,Asp.net Mvc,我正在尝试更新数据库中同一行的列的值 这是我的密码: if (ModelState.IsValid) { using (SqlConnection cn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString)) {

我正在尝试更新数据库中同一行的列的值

这是我的密码:

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

我已经设置了一个断点,并检查变量中的值,所有这些值都是正确的

我做错了什么


有人可以帮我吗?

请不要在实际查询中用引号括起您的参数。试试这个:

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

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

在实际查询中不要用引号括起来。试试这个:

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

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

如何确定是否没有收到任何错误?在
cmd.ExecuteNonQuery()之后您没有执行任何错误捕获/处理操作,请将该代码环绕
try{}catch{}
并调试代码以确保将预期值传递给这两个参数..?请尝试不使用引号
Des=@Des,Sc=@Sc
im sure。。我已经检查了所有的valueshow,您确定没有收到任何错误吗?在
cmd.ExecuteNonQuery()之后您没有执行任何错误捕获/处理操作,请将该代码环绕
try{}catch{}
并调试代码以确保将预期值传递给这两个参数..?请尝试不使用引号
Des=@Des,Sc=@Sc
im sure。。我已经检查了所有的价值。。就是这样。。。该死非常感谢你,大卫。。没想到这就是问题所在@史蒂芬:你有权利做你想做的事。。就是这样。。。该死非常感谢你,大卫。。没想到这就是问题所在@史蒂芬:你有权实现你的目标