function getstudentbystudentno(studentno:string):tstuden;
var
  sql:string;
student:tstudent;
adoquery:tadoquery;
begin
adoquery:=tadoquery.create(nil);
sql:='select id,name,nation from 学生信息'+
' where id='+'''+studentNo+'''';
adoquery:=dahelper.exesqlquery(sql);
if(adoquery.recordcount<1)  then
begin
result:=nil;
end
手机打的,累死了,最后的studentno就是id,我想实现模糊查询,后台数据库是sql server2005,这个where句该怎么改
谢谢各位大哥大姐了

解决方案 »

  1.   


    'select id,name,nation from 学生信息'+
    ' where id LIKE ''%'+studentNo+'%''';1,% :表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。
    比如 SELECT * FROM [user] WHERE u_name LIKE '%三%'
    摘自:
    http://www.cnblogs.com/GT_Andy/archive/2009/12/25/1921914.html
      

  2.   

    'select id,name,nation from 学生信息'+
    ' where id LIKE ''%'+studentNo+'%''';
    肯定可以的,你在SQL中测试下就知道了
      

  3.   

    怀疑LZ是不是敲错了,通常id都是数字类型的,如果模糊查询数字的话只能用大于小于来做了
    如果没敲错
    1L的应该可以的
      

  4.   

    说错了更正下,大于小于是数字判断,数字模糊查询可以用cast将数字转成字符串然后判断是否包含指定字符
      

  5.   

    模糊查询使用Like关键字,具体的用法参阅:
    http://download.csdn.net/detail/veron_04/1644211
      

  6.   

    最简单的方法把程序执行的SQL语句,拷贝到查询分析器下执行,看结果。