Проблема с SQL-заявлением - PullRequest
0 голосов
/ 06 июня 2011
string insertCommand = 
    "INSERT INTO Users (UserID) VALUES" + "" + "(CONVERT(uniqueidentifier, '" + 
    UsersIdentityToinsert + "'),'"+ userName+",0,null')";  

он говорит мне:

There are fewer columns in the INSERT statement than values specified

в предложении VALUES.Количество значений в предложении VALUES должно соответствовать количеству столбцов, указанному в операторе INSERT.

Но у меня есть четыре столбца?

Ответы [ 2 ]

2 голосов
/ 06 июня 2011

у вас есть только UserID в списке вставок, но в списке значений у вас есть два значения - уникальный идентификатор и имя пользователя

это будет работать лучше: (при условии имени вашего столбца имени пользователя)

string insertCommand = 
    "INSERT INTO Users (UserID, username) VALUES" + "" + 
    "(CONVERT(uniqueidentifier, '" + UsersIdentityToinsert + "'),'"+ userName+"')";

EDIT:

Я чувствую, что мне нужно рассмотреть эту часть более четко:

Но у меня есть четыре столбца?

Полученная ошибка относится к числу столбцов, указанному в операторе INSERT, а не к фактической таблице, поэтому, если вы запускаете INSERT с помощью:

INSERT INTO AnyTable (ColumnA, ColumnB)

вам нужно соответствовать количеству столбцов в предложении VALUES

VALUES ("Value1", "Value2")
0 голосов
/ 06 июня 2011

Вам не хватает «Имя пользователя» в столбце «Имена», то есть имя столбца и значения не совпадают.

string insertCommand = 
    "INSERT INTO Users (UserID,UserName) VALUES" + "" + 
    "(CONVERT(uniqueidentifier, '" + UsersIdentityToinsert + "'),'"+ userName+"')";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...