我设计了个窗体界面,在界面上放了一些textbox,又建了个access数据库,把textbox中的内容插入到数据库中,但再程序中插入时插入语句总出错,说“标准表达式中数据类型不匹配”。我在access中用sql查询检查语句时,出现错误,说“access不能再追加查询中追加所有记录。access设置1字段为null是因为类型转换失败,它未将0记录添加到表是因为键值冲突,没有添加0记录是因为锁定冲突,没有添加0记录是因为有效性规则冲突”
我的数据库的字段和类型如下:
字段名称 数据类型
客户名称 文本
合同号 备注
原料 备注
日期 文本
品名 文本
发样品名 备注
序号 自动编号
裁断 备注
整毛 备注
重量 数字
毛长 文本
排长 数字
管径 数字
方向 文本
倒毛 文本
压段 文本
备注 文本
说明 备注
烘箱温度 备注
网帽 文本
头皮尺寸 数字
头皮重量 数字
发型 文本
完成重量 数字
其他说明 备注
是否有头皮 文本
烘烤时间 文本
插入的一条语句为:
insert into JobInstruction(客户名称,合同号,原料,日期,品名,发样品名,裁断,整毛,重量,毛长,排长,管径,方向,倒毛,压段,备注,说明,烘箱温度,网帽,头皮尺寸,头皮重量,发型,完成重量,其他说明,是否有头皮,烘烤时间)values('','','','2008-11-18','AL01','','16.5 12.5','17.5 8.75','6','7.75','45','65','IN','','','','','85','','','','','','','否','60')
请高人帮我指点一下是怎么回事
我的数据库的字段和类型如下:
字段名称 数据类型
客户名称 文本
合同号 备注
原料 备注
日期 文本
品名 文本
发样品名 备注
序号 自动编号
裁断 备注
整毛 备注
重量 数字
毛长 文本
排长 数字
管径 数字
方向 文本
倒毛 文本
压段 文本
备注 文本
说明 备注
烘箱温度 备注
网帽 文本
头皮尺寸 数字
头皮重量 数字
发型 文本
完成重量 数字
其他说明 备注
是否有头皮 文本
烘烤时间 文本
插入的一条语句为:
insert into JobInstruction(客户名称,合同号,原料,日期,品名,发样品名,裁断,整毛,重量,毛长,排长,管径,方向,倒毛,压段,备注,说明,烘箱温度,网帽,头皮尺寸,头皮重量,发型,完成重量,其他说明,是否有头皮,烘烤时间)values('','','','2008-11-18','AL01','','16.5 12.5','17.5 8.75','6','7.75','45','65','IN','','','','','85','','','','','','','否','60')
请高人帮我指点一下是怎么回事
数据类弄不匹配的话,看看你数据库中字段设置的是什么类型,将其一一对应.如果是int 就不用加单引号.
我后面的那几个数字类型的是空值,sql语句可以这样写吗
INSERT INTO JobInstruction ( 客户名称, 合同号, 原料, 日期, 品名, 发样品名, 裁断, 整毛, 重量, 毛长, 排长, 管径, 方向, 倒毛, 压段, 备注, 说明, 烘箱温度, 网帽, 头皮尺寸, 头皮重量, 发型, 完成重量, 其他说明, 是否有头皮, 烘烤时间 )
VALUES ('', '', '100%高温丝', '2008-11-17', 'AL01', '', '16.5 12.5', '17.5 8.75', 6, '7.75', 45, 65, 'IN', '', '', '', '', '85', '', ,, '', , '', '否', '60')
再sql中报错是“insert into语法错误”
INSERT INTO JobInstruction ( 客户名称, 合同号, 原料, 日期, 品名, 发样品名, 裁断, 整毛, 重量, 毛长, 排长, 管径, 方向, 倒毛, 压段, 备注, 说明, 烘箱温度, 网帽, 头皮尺寸, 头皮重量, 发型, 完成重量, 其他说明, 是否有头皮, 烘烤时间 )
VALUES ('', '', '100%高温丝', '2008-11-17', 'AL01', '', '16.5 12.5', '17.5 8.75', 6, '7.75', 45, 65, 'IN', '', '', '', '', '85', '', ,, '', , '', '否', '60')
提示说是【'85', '', ,, '', ,】这两个逗号之间有错误,这两个都是数字型的字段,但我插入的是空值,所以就是连着两个逗号,应该怎么改呀,
先谢谢各位了
例如:
INSERT INTO JobInstruction ( 原料, 日期, 品名)
VALUES ( '100%高温丝', '2008-11-17', 'AL01')
INSERT INTO JobInstruction ( 客户名称, 合同号, 原料, 日期, 品名, 发样品名, 裁断, 整毛, 重量, 毛长, 排长, 管径, 方向, 倒毛, 压段, 备注, 说明, 烘箱温度, 网帽, 头皮尺寸, 头皮重量, 发型, 完成重量, 其他说明, 是否有头皮, 烘烤时间 )
VALUES ('', '', '100%高温丝', '2008-11-17', 'AL01', '', '16.5 12.5', '17.5 8.75', 6, '7.75', 45, 65, 'IN', '', '', '', '', '85', '', ,, '', , '', '否', '60')
建议使用SqlParameter吧。
如果是文本类型的,空值用''表示
其他类型的空值用null表示根据这个改一下,应该就行了。
$connid = odbc_connect($connstr,"","",SQL_CUR_USE_ODBC) or die ("数据库ACCESS连接错误!");
echo "<br>数据ACCESS库连接成功";
$sqlaccess ="INSERT INTO sms_shan.sendingsmstable(SmsUser,PhoneNumber,SmsContent,UserDefineNo,NewFlag,SendLevel,SmsTime ,PhoneNumberType,PutType)VALUES ('$rowdaifa[1]' ,'$rowdaifa[2]','$mag', '0','1' ,'0' , '$rowdaifa[6]' , '0' , '待发')"; //$sqlaccess ="INSERT INTO sms_shan.sendingsmstable (SmsIndex,SmsUser,PhoneNumber,SmsContent,UserDefineNo,NewFlag,SendLevel,SmsTime ,PhoneNumberType,PutType)VALUES (NULL , '$rowdaifa[1]' ,'$rowdaifa[2]' ,'$mag', '0','1' ,'0' , '$rowdaifa[6]' , '0' , '待发')";
//$queryaccess = odbc_do($connid,$sqlaccess)or die("<br>写入ACCESS数据库失败!");
$queryaccess = odbc_do($connstr,$sqlaccess)or die("<br>写入ACCESS数据库失败!");
$resultaccess = odbc_execute($queryaccess);帮忙看看哪里出错了?谢谢!
” 搜索来的,
最后还是我仔细看了下代码,是因为判断类型true false的关系,这个类型的值不需要加引号,完美通过。