注册 登录
编程论坛 Delphi论坛

查询语句新问题

yitingkai 发布于 2007-06-03 23:13, 1077 次点击

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls;

type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Button1: TButton;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
var sqlstr:string;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if radiobutton1.checked then
sqlstr:=sqlstr+'select 姓名 学号 from 学生 where 姓名='+''''+edit1.text+'''';
if radiobutton2.checked then
sqlstr:=sqlstr+'select 姓名 from 学生 where 姓名like'+''''+'%'+edit2.text+'''';
end;
end.

8 回复
#2
无情杀手2007-06-05 19:52
什么问题噢?
#3
songyang2012007-06-06 15:45

第一,似乎是全部的代码了,质疑sql是否执行了。

第二,如果可以执行,这个button肯定不能按第二次……

#4
zengziji2007-06-08 00:37

如果我没有理解错你的意思的话(没有编译过,应该没有问题)
if radiobutton1.checked then
sqlstr:='select * from 学生 where 学号 like '+quotedstr('%'+edit1.text+'%');
if radiobutton2.checked then
sqlstr:='select * from 学生 where 姓名 like '+quotedstr('%'+edit2.text+'%');
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.text:=sqlstr;
adoquery1.open;

[此贴子已经被作者于2007-6-8 0:40:27编辑过]

#5
volte2007-06-08 11:34
你这样的程序肯定有问题,
如果两个radiobutton都选择,怎么办
另外。你的sqlstr是全局变量。程序将在执行第二次时候肯定抱错误。
#6
zengziji2007-06-08 13:36
以下是引用volte在2007-6-8 11:34:29的发言:
你这样的程序肯定有问题,
如果两个radiobutton都选择,怎么办
另外。你的sqlstr是全局变量。程序将在执行第二次时候肯定抱错误。

另外。你的sqlstr是全局变量。程序将在执行第二次时候肯定抱错误。---说的对
但是” 两个radiobutton都选择 “ 我没有见过这样的情况。

[此贴子已经被作者于2007-6-9 15:17:22编辑过]

#7
volte2007-06-08 22:23
回复:(zengziji)以下是引用volte在2007-6-8 11:34:...

想不到并不代表别人会不会这么做。

要知道软件做出来是给别人用的。

如果你认为很愚蠢,很可笑的话,
说明你还没有真正的和你的客户交流过!
往往客户就是这样的误操作!

#8
zengziji2007-06-09 15:18

我没有说清楚,radiobutton在一个窗体中是只能选择一个的,不可能出现同时选择两个一上的问题

#9
gg5252007-07-05 16:56
sqlstr:=sqlstr+'select 姓名 学号 from 学生 where 姓名='+'''+edit1.text+''';
if radiobutton2.checked then
sqlstr:=sqlstr+'select 姓名 from 学生 where 姓名like'+'''+'%'+edit2.text+''';
1