C#执行sql语句抛出“标准表达式中数据类型不匹配”,原因就是sql语言中的值跟数据库中的类型匹配不上
举个例子如下:
DateTime mysqldt = Convert.ToDateTime("1970-9-10 9:30");
string sqlstr = string.Format("select * from t_user where arriveTime > ‘{0}’", mysqldt);
数据库为access 2003 数据库中arriveTime 类型为时间/日期
C#执行mysql的时候,以上的语句没有问题。
但是改为access的时候,因为access数据库的原因
执行 sqlstr 后抛出 "标准表达式中数据类型不匹配"问题。
解决办法是把‘{0}’ 要变为 #{0}#,这样子可以匹配access数据库的“时间/日期”类型。
还有关于sql语句问题,最好在VS2010或者数据库中先执行通过后再编译,这样子避免不必要的麻烦和错误。