【发布时间】:2019-11-26 21:44:18
【问题描述】:
使用 Visual Basic 和 SQL 将数据插入 MS Access 数据库.....我有以下代码,如果 @username 的值不存在于表中,它只会添加它。
cmd.CommandText = "INSERT INTO tbl (CustomerID) SELECT @username FROM(SELECT COUNT(*) FROM tbl) As v WHERE Not EXISTS(Select 1 FROM tbl as t WHERE t.CustomerID = @username)"
但是,我希望插入另一个不需要相同验证检查的值。这个值存储在@password
cmd.CommandText = "INSERT INTO tbl (CustomerID, Password) SELECT @username FROM(SELECT COUNT(*) FROM tbl) As v WHERE Not EXISTS(Select 1 FROM tbl as t WHERE t.CustomerID = @username VALUES (@username, @password)"
以上方法我都试过了,还是不行。
总之,我只想将@username 添加到数据库中,并将@password 添加到同一行中,但只有@username 通过检查。
编辑:
我试过cmd.CommandText = "INSERT INTO tbl (CustomerID, Password) SELECT @username, @password FROM (SELECT COUNT(*) FROM tbl) As v WHERE Not EXISTS(Select 1 FROM tbl as t WHERE t.CustomerID = @username)",但收到语法错误。
【问题讨论】:
-
请不要破坏您的帖子。
-
OleDB 不使用命名参数。它将您的@name 转换为?,因此您的参数必须按照它们出现在 sql 字符串中的索引顺序排列。您的查询包含三个参数,但您只提供其中两个。