如果数据库正常打开,你在edit1中输入的名字库中有的话,应该是这样写的。
你写的没有问题呀,在试试吧。

解决方案 »

  1.   

    如果数据库正常打开,你在edit1中输入的名字库中有的话,应该是这样写的。
    你写的没有问题呀,在试试吧。
      

  2.   

    你这个sql 好像有问题
    str:string;
    str:='select * from friend where name='+'''+edit1.text+''';
    adoquery1.sql.add(str);
         ...
      

  3.   

    如果edit1.Text为空
    则这句话可以直接写为select * from friend where name=''
    又如我们输入了black,则等价于select * from friend where name='black'
    但是找不到我--blackant
    我想这是你找不到记录的原因吧,其实字符查询中更多的是用like很少有人用=
    如'select * from friend where name like ''%'+edit1.text+'%'''
    这样你应该可以找到你想要的记录了
    但是问题是可能你不想要的记录或者你不想要用户获得非法的权限这样做是有问题的,比如edit1.text的值为1%' or '1%'=' 当然如果直接用等于这个值可取1' or '1'='1,这样你要检查字串了,不如直接用query的参数,它会自动帮你检测
      

  4.   

    看看你的name字段是什么类型。如果是char,建议写成这样看看看:
    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add('select * from friend');
    adoquery1.sql.add('where TRIM(name)='''+edit1.text+'''');
    adoquery1.open;—————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”等';
    I.Desire := '加不加分随你';
    —————————————————————————————————
           
      

  5.   

    1.大小写问题
    2.把=换为 like
    3.看看其他的吧,比如数据库的设计的原因