SQL IF ELSE语句

时间:2013-04-10 08:37:17

标签: c# winforms sql-server-2008-r2

我在C# WinFormsINSERT成员中创建一个插入查询到数据库表(成员)。
我正在使用此代码:

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中输入的值?)

弹出:

enter image description here

任何帮助?

2 个答案:

答案 0 :(得分:3)

这表明你缺少一个参数。你应该有类似的东西:

cmd.Parameters.AddWithValue("PersonalId", personalId);

其中(重要的)personalId 不是null (但它可以是DBNull.Value

  

(@ PersonalId,应该具有用户在文本框中键入的值吗?)

它可能应该,但听起来你还没有正确添加它。

答案 1 :(得分:0)

你为什么这样做?而不是简单地将列定义为Unique,或者更好地定义为Primary key(如果您的表还没有PK)。
完成后,您的SQL服务器将负责处理它,因为如果该列标记为唯一或PK,则不允许其他项在列中具有相同的值。

实际上没有必要将此逻辑放入每个SQL插入...

你的错误说了一件事 - 你还没有定义参数@PersonalId,但我认为这是一个糟糕的方式......