【问题标题】:inserted values on updated database are not correct - MVC在更新的数据库上插入的值不正确 - MVC
【发布时间】:2013-09-09 14:43:19
【问题描述】:

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

这是我的代码:

 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.ExecuteNonQuery(); 之后,您没有执行任何错误捕获/处理将该代码包装在try{}catch{} 周围,您还调试了代码以确保将预期值传递给这两个参数..?
  • 尝试不带引号Des=@Des, Sc=@Sc
  • 我确定.. 我检查了所有值

标签: c# mysql sql asp.net-mvc


【解决方案1】:

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

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

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

【讨论】:

  • 是的......就是这样......该死......非常感谢大卫......从来没有想过这是问题......@Stephan:你有权利做你的目的跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-23
  • 2019-11-16
  • 1970-01-01
  • 2012-12-25
  • 2021-04-12
  • 2013-10-06
相关资源
最近更新 更多