注意ADO。NET中数据查询语句中的符号格式
1、通配符的使用
在ADO。NET中允许使用通配符进行数据查询。如下面语句查询表中EmployeeID以A开头的所有数据
Select EmployeeID,EmployName,Tel,Salary .....where EmployeeID='A%';
ADO。NET允许在字符串的开头或结尾使用%或*通配符。如下面语句查询表中所有单号尾为S的单据
Select productcode,productname,productsum,productprice ........where ordercode='%S'
ADO.NET不允许使用单独的符号如"?","-"等
2、分隔符的使用
a.引号
要注意ADO.NET中单引号的使用,例如在查询搜索用户姓名时,用户可能会查找姓名为K'Leey的数据,此时,数据查询语句将变为
name='K'Leey'
在查询时,出现单引号时,应将之替换为两个单引号,即name='K''Leey',我们在实际操作中,当数据查询语句中出现单引号时,可以使用String类的Replace方法进行替换将“'”换成“''”,如
condition = "name='"+tempname.Replace("'","''")+"'"
b.日期
可以使用#符号来处理ADO.NET中涉及日期格式的查询,如下示例
condition = "endDate<#2005/09/07# and endDate>#2005/08/07#"
c.列分隔符
当数据表中的某列由于某些原因含有列分隔符时,如sale order,可以使用[]将此列区分开来,如下示例
condition = "[sale order] = S845647"
此种情况下,如果数据列中已含有列分隔符做为列名的一部分时sale] order[,需要在列分隔符结束部分]前加入\符号,即
condition = "[sale\] order[] = S845647"
如果在C#中来处理这种ADO.NET操作时,需要注意符号转义问题,示例将变为
condition = "[sale\\] order[] = S845647"