0

我正在向数据库表(成员)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?)

这个弹出:

在此处输入图像描述

有什么帮助吗?

4

2 回答 2

3

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

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

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

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

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

于 2013-04-10T08:41:46.253 回答
0

为什么要这么做??而不是这个东西,只需将列定义为Unique或者甚至更好地定义为Primary key(如果您的表还没有 PK)。
完成后,您的 SQL 服务器会处理它,因为如果该列被标记为唯一或 PK,它将不允许其他项目在该列中具有相同的值。

真的没有必要把这个逻辑放到每个 SQL 插入中......

您的错误说明了一件事-您尚未定义参数@PersonalId,但我认为这是一种不好的方法。

于 2013-04-10T08:39:31.383 回答