如果数据库正常打开,你在edit1中输入的名字库中有的话,应该是这样写的。
你写的没有问题呀,在试试吧。
你写的没有问题呀,在试试吧。
解决方案 »
- 求Idhttp1 post方式访问网页的例子
- 再此提问关于delphi下调用exe
- 我用ADOQuery的insert的方法插入数据,第一可以成功的插入,但第二次却提不有一数据项找不到,是什么原因呀?
- 是高手的进来!
- tag属性是干什么的?
- 用OpenDialog控件能否得到一个表的文件路径,把路径赋给table1控件?本人在线等候
- 【寻】可以调用外部程序的Vxd代码【关注有分】
- 谁有FTP服务器原代码???提供地址也一样,300分谢谢!只能先给100!
- 一个数据库的程序 编译以后 在别的机器上不能用 说什么引擎出错,我该怎么办啊
- 请教数据库的缓存更新的问题?
- Delphi中,输入一个字符串,怎样将它转化为整型计算?急求!相赠100分求完整代码!
- 一个送分的问题哦!
你写的没有问题呀,在试试吧。
str:string;
str:='select * from friend where name='+'''+edit1.text+''';
adoquery1.sql.add(str);
...
则这句话可以直接写为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的参数,它会自动帮你检测
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 := '加不加分随你';
—————————————————————————————————
2.把=换为 like
3.看看其他的吧,比如数据库的设计的原因