【发布时间】:2021-04-12 08:16:57
【问题描述】:
我有一个在实际程序中使用 sql 创建的访问数据库,并使用“BIT”来确定记录的真假。现在我想用update sql语句来改变我的记录是真还是假。
例如,我有一个支付数据库表和一个支付记录,它是真或假。
if (HasPaidCBOX.Checked)
{
Cmd.CommandText = "UPDATE Payments SET Paid = @p WHERE PlayerID ='" + PaymentForm.ID + "'";
Cmd.Parameters.AddWithValue("@p", xxx);
Cmd.ExecuteNonQuery();
}
我想知道标有三个 x 的地方是什么。
【问题讨论】:
-
true不起作用吗? -
另外,您应该在那里参数化 both 值,而不仅仅是 xxx。 PaymentForm.ID 也应该被参数化。
-
Access 使用
-1表示 TRUE,所以试试-1 -
@OlivierRogier 这个问题与 SQL 注入无关(即使它恰好包含该漏洞,OP 也没有询问它)。因此,不是重复的。
-
@TheMixy you are right
-1应该可以工作