sql server插入数据报错“ 插入错误: 列名或所提供值的数目与表定义不匹配。”

做jsp插入数据时报错:插入错误:列名或所提供值的数目与表定义不匹配。我的程序很多,一一贴出来是费神是事,下面提供一点点线索,插入数据代码是publicintadd(Ob... 做jsp插入数据时报错:插入错误: 列名或所提供值的数目与表定义不匹配。我的程序很多,一一贴出来是费神是事,下面提供一点点线索,插入数据代码是public int add(Object[] params){  String sql="insert into milu values(?,?)";  return update(sql, params); }values的参数是一个servlet中定义的,接收表单的数据并定义成数组插入,如下:String user=request.getParameter("user");  String pwd=request.getParameter("pwd");   Object[] params={user,pwd}; int i=new WordDao().add(params);另外sql server 2005表很简单,如下:主键是id。不知道为何报如上的错,报这个错大概是哪方面出了问题?是sql语句还是表的属性啊,还是插入参数定义个数和表的列数目之类的错呢   展开
 我来答
kas68310
2011-09-23 · TA获得超过3637个赞
知道大有可为答主
回答量:1468
采纳率:33%
帮助的人:1177万
展开全部
报错已经说明了,数目不匹配.
两种情况,
一是全行字段插入,sql语句没有定义插入的列,这时除了自增ID列,其他列的数目要与表结构定义的列数目一致.
二是声明列插入,这时插入的列(值)要与声明的列数目一致.
同时还要注意值类型,否则会报类型不匹配的错.
匿名用户
2011-09-24
展开全部
插入操作的格式是:
INSERT INTO TABLE_NAME <COLUMN_NAMES> <(VALUES <(COLUMN_VALUES)>)> (<SELECT SEGMENT>)
你的语句中'tp00000120'这个值对应的是那个列,可能你要修改一下表结构。
给你个例子:
create table book
(bookid char(10),
bookname char2(40),
publish char2(40)
);
-- 插入语句1:
INSERT INTO book VALUES('tp00000120','软件自动化测试:引入、管理与实施','电子工业出版社');
-- 插入语句2:
INSERT INTO book (bookid,bookname,publish)
VALUES(' tp00000120','软件自动化测试:引入、管理与实施','电子工业出版社');

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cy_paul
2011-09-23 · TA获得超过821个赞
知道小有建树答主
回答量:769
采纳率:100%
帮助的人:242万
展开全部
String sql="insert into milu values(?,?)"; 这一句要修改一下,表名后要加上列名
String sql="insert into milu(user,pwd) values(?,?)";
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
武超郑
2011-09-23
知道答主
回答量:32
采纳率:0%
帮助的人:12.7万
展开全部
你的id 是自动增长 要是的话 就把表名后加上列名
要是id 不是自增长的话 就得手动 添加Id 了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式