我在C# WinForms
,INSERT
成员中创建一个插入查询到数据库表(成员)。
我正在使用此代码:
IF NOT EXISTS(SELECT * FROM Members WHERE PersonalId = @PersonalId)
BEGIN
INSERT INTO Members (PersonalId, FirstName, LastName, City, PhoneNumber)
VALUES (@PersonalId, @FirstName, @LastName, @City, @PhoneNumber)
END
(@PersonalId,
应该具有用户在textbox
中输入的值?)
弹出:
任何帮助?
答案 0 :(得分:3)
这表明你缺少一个参数。你应该有类似的东西:
cmd.Parameters.AddWithValue("PersonalId", personalId);
其中(重要的)personalId
不是null
(但它可以是DBNull.Value
。
(@ PersonalId,应该具有用户在文本框中键入的值吗?)
它可能应该,但听起来你还没有正确添加它。
答案 1 :(得分:0)
你为什么这样做?而不是简单地将列定义为Unique
,或者更好地定义为Primary key
(如果您的表还没有PK)。
完成后,您的SQL服务器将负责处理它,因为如果该列标记为唯一或PK,则不允许其他项在列中具有相同的值。
实际上没有必要将此逻辑放入每个SQL插入...
你的错误说了一件事 - 你还没有定义参数@PersonalId,但我认为这是一个糟糕的方式......