我有一个窗体,左边是DXDBGRID控件,显示部门信息,如部门编号、部门名称等,右边是用户输入的文本框,当用户输入内容时,按“添加”按钮,在左边的DXDBGIRD上应该显示添加的部门,但我添加之后没有显示,我刷新了也显示不出来,怎么回事?代码如下:
procedure Tfixform.dxButton1Click(Sender: TObject);
var s1,s2,s3,sqltext: string;
begin
s1:=trim(dxEdit1.Text);
s2:=trim(dxEdit2.Text);
s3:=trim(dxEdit5.Text);
if (s1 = '') or (s2 = '') or (s3='') then exit; wAdoq3.close;
wAdoq3.SQL.Clear;
SqlText := 'select Dname from Department where Dname=''' +s1+ ''' or Dno=''' +s2+ ''' or Dspell=''' +s3+ '''' ;
//showmessage(sqltext);
CreateAdoq(wAdoq3,sqltext);
wAdoq3.Open;
if Wadoq3.RecordCount>0 then
begin
MessageDlg('已有此部门名称或部门编号,不能重复!', mtInformation, [mbOk], 0);
exit;
end; wAdoq1.Close;
wAdoq1.SQL.Clear;
loadtable(wAdoq1,'Department','Dname');
sqltext:= 'insert into Department (Dno,Dname,Dspell) values (''' + s2 + ''',''' + s1 + ''','''+s3+''')';
CreateAdoq(wAdoq3,sqltext);
//CreateAdoq(wAdoq2,sqltext);
wAdoq3.ExecSQL;
//wAdoq2.ExecSQL;
MessageDlg('添加部门完毕!', mtInformation, [mbOk], 0);
dxEdit1.Text:='';
dxEdit2.Text:='';
dxEdit5.Text:='';
wAdoq3.Close;
wAdoq3.SQL.Clear;
loadtable(wAdoq1,'Department','Dname');
loadtable(wAdoq2,'Department','Dname');
exit;
end;附:loadtable函数
Function loadtable(wAdoq:TAdoquery;Bname:string;Fname:string):Boolean;
begin
with wAdoq do
try
begin
close;
sql.Clear;
sql.Text:='select * from '+ Bname + ' order by ' + Fname;
createadoq(wAdoq,sql.Text);
Open;
result:=true;
end;
except
result:=false;
end;
end;
procedure Tfixform.dxButton1Click(Sender: TObject);
var s1,s2,s3,sqltext: string;
begin
s1:=trim(dxEdit1.Text);
s2:=trim(dxEdit2.Text);
s3:=trim(dxEdit5.Text);
if (s1 = '') or (s2 = '') or (s3='') then exit; wAdoq3.close;
wAdoq3.SQL.Clear;
SqlText := 'select Dname from Department where Dname=''' +s1+ ''' or Dno=''' +s2+ ''' or Dspell=''' +s3+ '''' ;
//showmessage(sqltext);
CreateAdoq(wAdoq3,sqltext);
wAdoq3.Open;
if Wadoq3.RecordCount>0 then
begin
MessageDlg('已有此部门名称或部门编号,不能重复!', mtInformation, [mbOk], 0);
exit;
end; wAdoq1.Close;
wAdoq1.SQL.Clear;
loadtable(wAdoq1,'Department','Dname');
sqltext:= 'insert into Department (Dno,Dname,Dspell) values (''' + s2 + ''',''' + s1 + ''','''+s3+''')';
CreateAdoq(wAdoq3,sqltext);
//CreateAdoq(wAdoq2,sqltext);
wAdoq3.ExecSQL;
//wAdoq2.ExecSQL;
MessageDlg('添加部门完毕!', mtInformation, [mbOk], 0);
dxEdit1.Text:='';
dxEdit2.Text:='';
dxEdit5.Text:='';
wAdoq3.Close;
wAdoq3.SQL.Clear;
loadtable(wAdoq1,'Department','Dname');
loadtable(wAdoq2,'Department','Dname');
exit;
end;附:loadtable函数
Function loadtable(wAdoq:TAdoquery;Bname:string;Fname:string):Boolean;
begin
with wAdoq do
try
begin
close;
sql.Clear;
sql.Text:='select * from '+ Bname + ' order by ' + Fname;
createadoq(wAdoq,sql.Text);
Open;
result:=true;
end;
except
result:=false;
end;
end;
解决方案 »
- 下面这句实现了什么功能?是保留小数位吗?如果是,是保留几位小数位?谢谢各位大虾。
- 如何监听注册表中的某一项字符串值
- 》》》Edit对话框的应用,一句话就能解决《〈〈
- 找工作的困惑
- 菜鸟请教怎么做进度条
- 请问blob 是什么呀!!!请给出详细解答!!!!
- Report Builder中打印中文折行时经常出现乱码,请问如何解决?
- 怎么将字符串中的*部分字符*替换掉?急!!(在线等待)
- ultraedit编辑软件
- 一个学过OOA/OOD, UML,Design Pattern, C++, JAVA(一点点),DEPHIL的家伙,该如何继续前进呢?
- dll中建立映像文件,主exe文件怎么读取映像文件中的数据啊?有几种方式
- 如何获取要查询数据表的字段名名,最好简单些的语句?
Function CreateAdoq(Adoq:Tadoquery;sqltext:string):Boolean;
begin
try
begin
Adoq.ConnectionString := MainForm.wConn.ConnectionString;
//showmessage(Adoq.ConnectionString);
Adoq.SQL.Text := SqlText;
result := true;
end
except
Result := false;
end;
end;