此类错误,一般是指最终拼凑字符串生成的SQL语句有问题,可检查=附件字段,一般有下列几种情况
-
是否缺少空格
-
字符串类型值少加了单引号(包括字符串内的单引号未进行替换处理)
-
等号后面没有值进行占位。
今天出现的问题语句:
string sql = "select StudentName,Gender,Birthday,StudentIdNo,StudentAddress from Students" +
"where StudentId = {0}";
在换行后,“where”前少了个空格。
以后要避免此类错误!
2019-10-11记
从文章浏览量看,遇到这个问题的同学还是挺多的,会遇上这个问题的你们可能刚刚开始学编程,遇到这个问题原因可能是在拼写sql,也可能是拼写xml文档,记得养成好习惯,换行的时候检查自己是否忘记换行符或者空格。
另外针对C#的字符串写法,可以采用下面的建议:
对于拼写带参数的字符串传统写法常采用Format()函数,使用占位符‘{i}’的形式
string.Format("storeId={0}&startTime={1}&endTime={2}", storeId,startTime,endTime);
对于参数过多的字符串来说这种写法要注意不要写错了参数的数量和顺序,可以用下面的写法(C#6新增特性字符串内插法)代替:
$"storeId={storeId}&startTime={startTime}&endTime={endTime}"