我有一个插入语句,它将插入文本框中的值。它工作正常现在我想通过使用SQL查询检查文本框不能为空。
我的插入声明是这样的:
INSERT INTO guestpasstypes(guestPasstype_Name)values('" + tbPassType.Text + "')"
答案 0 :(得分:1)
使用您使用的任何语言从文本框中获取文本,以查看它是空还是空。大多数语言都有这些检查。 (例如:php; isempty())另外,如果你不想要空格,也可以使用trim。
答案 1 :(得分:1)
使guestPasstype_Name为NOT NULL并确保MySQL以SQL一致性模式运行。以下可能有效:
INSERT INTO guestpasstypes(guestPasstype_Name)values(
IF('" + tbPassType.Text + "'='', NULL,'" + tbPassType.Text+"')"
答案 2 :(得分:1)
我也同意你应该避免调用那个SQL,因为可能存在注入攻击,但如果由于某种原因,你真的需要这样做,那么这应该可以解决问题:
"INSERT INTO guestpasstypes(guestPasstype_Name)
select '" + tbPassType.Text + "' from dual where '" + tbPassType.Text + "' <> '';"
答案 3 :(得分:1)
我可以看到两种解决方案
在'guestpasstypes'表中创建检查约束,如下所示:
ALTER TABLE dbo.guestpasstypes ADD CONSTRAINT CK_guestPasstype_Name CHECK((LEN(guestPasstype_Name))&gt;(0)))
(给出的例子是MSSQL,但我希望MySQL也有约束)