【问题标题】:Checkbox update statement复选框更新语句
【发布时间】:2012-08-24 12:49:04
【问题描述】:

我想知道如何使用后面代码中的更新语句来更新复选框。

我正在使用带有订单信息的网格视图,并带有一个复选框来设置订单是否完成。最初它设置为 false。

我有一个下拉列表,其中包含我在更新语句中使用的订单 ID 号(我使用的变量是 OrderID)

我尝试了这个更新语句,但它似乎不起作用:

strSQL = "UPDATE Order SET OrderCompleted = true  WHERE OrderID = " + OrderID;

谁能帮忙,我已经研究了一段时间了。

【问题讨论】:

  • 我希望设置为1,而不是true
  • 哦,注意SQL injection
  • 您有什么问题或引发了什么异常?
  • @Uwe Kein,我正在使用它来防止 sql 注入: cmd.Parameters.AddWithValue("OrderID", OrderID);和 Shoaib,没有引发异常,只是没有工作。

标签: c# asp.net checkbox


【解决方案1】:

试试这个:-

strSQL = "UPDATE [Order] SET OrderCompleted = 1 WHERE OrderID = " + OrderID;

在 SQL 中,没有 boolean 数据类型,但有一个数据类型 bit 接受零 (0) 或一 (1) 但不接受真或假。由于您使用的是复选框,因此您需要在传递给查询之前将布尔值转换为整数。

其次,正如@nunespascal 所提到的,将 [] 括在 Order 词周围,因为 Order 是一个 SQL 关键字。

【讨论】:

  • 并且还使用“1”而不是“true”。
【解决方案2】:

order是sql中的保留字。与 order by 子句一起用于对行进行排序。

如果是关键字,请使用[] 封装您的表名和列名。

试试这个:

strSQL = "UPDATE [Order] SET OrderCompleted = 1 WHERE OrderID = " + OrderID + "";

【讨论】:

  • 我现在觉得自己很笨...非常感谢。感谢您的帮助。
  • 没关系,有时会发生。 :-)
猜你喜欢
  • 2019-02-23
  • 1970-01-01
  • 1970-01-01
  • 2021-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多