遇到个问题:提示:插入错误: 列名或所提供值的数目与表定义不匹配。
异常详细信息: System.Data.SqlClient.SqlException: 插入错误: 列名或所提供值的数目与表定义不匹配。
源错误: 
行 33:             cmd.CommandText = sql;
行 34:             //执行SqlCommand命令
行 35:             cmd.ExecuteNonQuery();
行 36:         }
行 37:     }相应的插入语句是:string sql = "INSERT INTO ChatInfo VALUES('" + fromname + "','" + toname
            + "','" + contentdata + "','" + posttime.ToString()+"')";表ChatInfo有五列分别为:ChatID,FromName,ToName,ContentData,PostTime。
网上查了下是插入数目不匹配,是我插入的四条信息,而被插入表有五列数据的原因么?可是我定义的ChatID列是主键,唯一标示,不起什么作用啊,我觉得此列不应该插入数据啊,那该如何解决呢?

解决方案 »

  1.   

    INSERT INTO ChatInfo VALUES(FromName,ToName,ContentData,PostTime) values(...)
      

  2.   

    INSERT INTO ChatInfo (FromName,ToName,ContentData,PostTime) values(...)
      

  3.   

    那你最好再好好检查一下ChatID列是否标识列
      

  4.   

    不能将值 NULL 插入列 'ChatID',表 'ChatRoom.dbo.ChatInfo';列不允许有空值。INSERT 失败。
    语句已终止。 
    异常详细信息: System.Data.SqlClient.SqlException: 不能将值 NULL 插入列 'ChatID',表 'ChatRoom.dbo.ChatInfo';列不允许有空值。INSERT 失败。
    语句已终止。二楼的你好,我按你说得INSERT INTO ChatInfo (FromName,ToName,ContentData,PostTime) values(...)改了,可提示新的错误::不能将值 NULL 插入列 'ChatID',表 'ChatRoom.dbo.ChatInfo';列不允许有空值。INSERT 失败。
    语句已终止。 

    ,还有什么办法么?谢谢各位了。我是初学的,还不太懂,
      

  5.   

    设置ChatID为自增列或
    string sql = "INSERT INTO ChatInfo(FromName,ToName,ContentData,PostTime) VALUES('" + fromname + "','" + toname+"','" + contentdata + "','" + posttime.ToString()+"')";