标准表达式中数据类型不匹配怎么办
Access中要求参数必须一一对应。
string selcom1 = "SELECT * FROM GuestBook WHERE PostID = " + postID;
string selcom2 = "SELECT * FROM GuestBook WHERE ParentID = " + postID;
PostID和ParentID为整型,所以不需要加单引号。不过大多数数据库系统中确实对于加单引号也不报错。
另外用参数的方式来做更安全。
扩展资料:
注意事项
在Access中,是无法使用存储过程的,但可以使用文本命令,如
update news set title=@title,types=@types,context=@context where id=@id
ID字段类型为自动增加,这句语句放在sql里是不会有问题的,但在access却有一个明显的错误:标准表达式中数据类型不匹配,同时也不会更新该条记录。
而造成的这个问题的原因就在于id的字段类型,在Access中 "where id=@id", 如果id类型为数字,那么就不能存在单引号''(在sql这里''是指定一个字段的值用,如'aaa'),而上面的文本命令的最后执行结果是:
update news set title='标题',types='类型' ,context='内容' where id='1'
不知道这种错误算什么错误,而正确的语句应该是:
update news set title='标题',types='类型' ,context='内容' where id=1
偏偏 DELETE 语句又不会出现上面所说的错误,如:
delete from news where id=@id