sql语句有问题

时间:2011-06-06 06:00:00

标签: c# asp.net sql

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 个答案:

答案 0 :(得分:2)

您只在插入列表中有UserID,但在值列表中,您有两个值 - uniqueidentifier和用户名

这样可以更好地工作:(假设您的用户名列的名称)

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

编辑:

我觉得我需要更清楚地解决这个问题:

  

但我有四列?

您收到的错误是指INSERT语句中指定的列数 - 而不是实际的表,因此如果您使用以下命令启动INSERT:

INSERT INTO AnyTable (ColumnA, ColumnB)

您需要匹配VALUES子句中的列数

VALUES ("Value1", "Value2")

答案 1 :(得分:0)

您在列名称中缺少“UserName”,即列名称和值不匹配。

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