问题描述
- C#中写SQL语句,单双引号的区别,为什么会报标准表达式中数据类型不匹配。
-
OleDbDataAdapter WorkPieceDataDA = new OleDbDataAdapter("update" + "[" + ming + "]" + "set " + lieming[j, 0] + " = '" + jilushuzhi_left[j, i] + "' where 点数 ='" + dianshu[0, i] + "'", tempconn);//充当 DataSet 和数据源之间的桥梁,用于检索和保存数据
这里的点数为列名,在上面设置的类型为int,请问为什么会报 标准表达式中数据类型不匹配。
解决方案
点数为列名,类型为int.
where 点数 ='" + dianshu[0, i] + "'"
这条应为
where 点数 =" + dianshu[0, i]
类型为数值时不要加引号。加了引号表示值的类型为字符串。
解决方案二:
var comm = new OleDbCommand(tempconn);
comm.CommandText=String.Format("update [{0}] set {1}= '{3}' where 点数 ={4}",ming,lieming[j, 0],jilushuzhi_left[j, i],dianshu[0, i]);
comm.NoQueryExcuent();
即可,上面的语句有些只是类似,按照C#类型的提示做就可以了。另外 原字符串中 Update 和ming 之间好像没有空格。
解决方案三:
C#的字符串只能用双引号,单引号表示char类型,sql两者都可以用,但是要匹配。
解决方案四:
C#执行sql语句抛出“标准表达式中数据类型不匹配”
时间: 2024-12-31 01:46:52