我用了两个form,一个name为UserManage,上面放上了DataSource1,ADOConnection1,ADOQuery1,DBGrid1,三个DBEdit(分别为DBEdit1,DBEdit2,DBedit3),三个按钮(caption分别为add,change,delete),该form上所有控件属性均配置好.另一个form为AddUser,上面放了edit1,edit2,Combobox1,和一个按钮(caption为add).数据库为xscxda.mdb,表名为admin,表admin的字段有id,name,password,department,其中id为自动编号,另外三者为文本型,不允许为空代码如下:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBCtrls, Mask, DB, ADODB, Grids, DBGrids;type
TUserManage = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBComboBox1: TDBComboBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
UserManage: TUserManage;implementationuses Unit2;{$R *.dfm}procedure TUserManage.Button2Click(Sender: TObject);
begin
if (trim(dbedit1.Text)<>'')and(trim(dbedit2.Text)<>'') then
try
ADOQuery1.Post;
except
showmessage('对不起,修改失败,请先尝试其他操作!');
end
else
showmessage('用户名和密码都不允许为空!');
end;procedure TUserManage.Button3Click(Sender: TObject);
begin
try
ADOQuery1.Delete;
except
showmessage('对不起,删除失败,请先尝试其他操作!');
end;
end;procedure TUserManage.Button1Click(Sender: TObject);
begin
if not assigned(AddUser) then
begin
AddUser:=TAddUser.Create(nil);
UserManage.ShowModal;
end
else
AddUser.ShowModal;
end;procedure TUserManage.FormCreate(Sender: TObject);
begin
if adoquery1.Active=true then adoquery1.Active:=false;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from admin');
adoquery1.Active:=true;
DBEdit1.DataField:='name';
DBEdit2.DataField:='password';
DBComboBox1.DataField:='department';
end;end.///////////////////////////////////////////////////////////////////////////
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TAddUser = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
ComboBox1: TComboBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
AddUser: TAddUser;implementationuses Unit1;{$R *.dfm}procedure TAddUser.Button1Click(Sender: TObject);
var
sqlstr:string;
begin
if (trim(edit1.Text)<>'')and (trim(edit2.Text)<>'') then
try
//判断数据表中是否已有该用户
if UserManage.adoquery1.active=true then UserManage.adoquery1.Active:=false;
UserManage.adoquery1.SQL.Clear;
UserManage.ADOQuery1.SQL.Add('select * from admin where name='+''''+trim(edit1.Text)+'''');
UserManage.ADOQuery1.Active:=true;
if UserManage.ADOQuery1.RecordCount=0 then
//没有该用户则增加
begin
if UserManage.adoquery1.active=true then UserManage.adoquery1.Active:=false;
UserManage.adoquery1.SQL.Clear;
//表admin的字段有id,name,password,department,其中id为自动编号,另外三者为文本型,不允许为空
sqlstr:='insert into admin(name,password,department) values('+''''+edit1.Text+''''+','+''''+edit2.Text+''''+','+''''+ComboBox1.Text+''''+')';
UserManage.adoquery1.SQL.Add(sqlstr);
try
UserManage.ADOQuery1.Prepared;
UserManage.adoquery1.ExecSQL;
if UserManage.adoquery1.active=true then UserManage.adoquery1.Active:=false;
UserManage.adoquery1.SQL.Clear;
UserManage.adoquery1.SQL.Add('select * from admin');
UserManage.adoquery1.Active:=true;
showmessage('用户添加成功!');
edit1.Text:='';
edit1.SetFocus;
except
showmessage('用户添加失败!');
if UserManage.adoquery1.active=true then UserManage.adoquery1.Active:=false;
UserManage.adoquery1.SQL.Clear;
UserManage.adoquery1.SQL.Add('select * from admin');
UserManage.adoquery1.Active:=true;
end;
end
else
showmessage('数据表中已有该用户,不允许用户名有相同的管理员!');
except
end
else
showmessage('用户名和密码不允许为空!');
end;end.
但是,在添加用户的时候提示insert into admin(name,password,department) values ('test','1234','123')有错,不知道为什么?
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBCtrls, Mask, DB, ADODB, Grids, DBGrids;type
TUserManage = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBComboBox1: TDBComboBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
UserManage: TUserManage;implementationuses Unit2;{$R *.dfm}procedure TUserManage.Button2Click(Sender: TObject);
begin
if (trim(dbedit1.Text)<>'')and(trim(dbedit2.Text)<>'') then
try
ADOQuery1.Post;
except
showmessage('对不起,修改失败,请先尝试其他操作!');
end
else
showmessage('用户名和密码都不允许为空!');
end;procedure TUserManage.Button3Click(Sender: TObject);
begin
try
ADOQuery1.Delete;
except
showmessage('对不起,删除失败,请先尝试其他操作!');
end;
end;procedure TUserManage.Button1Click(Sender: TObject);
begin
if not assigned(AddUser) then
begin
AddUser:=TAddUser.Create(nil);
UserManage.ShowModal;
end
else
AddUser.ShowModal;
end;procedure TUserManage.FormCreate(Sender: TObject);
begin
if adoquery1.Active=true then adoquery1.Active:=false;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from admin');
adoquery1.Active:=true;
DBEdit1.DataField:='name';
DBEdit2.DataField:='password';
DBComboBox1.DataField:='department';
end;end.///////////////////////////////////////////////////////////////////////////
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TAddUser = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
ComboBox1: TComboBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
AddUser: TAddUser;implementationuses Unit1;{$R *.dfm}procedure TAddUser.Button1Click(Sender: TObject);
var
sqlstr:string;
begin
if (trim(edit1.Text)<>'')and (trim(edit2.Text)<>'') then
try
//判断数据表中是否已有该用户
if UserManage.adoquery1.active=true then UserManage.adoquery1.Active:=false;
UserManage.adoquery1.SQL.Clear;
UserManage.ADOQuery1.SQL.Add('select * from admin where name='+''''+trim(edit1.Text)+'''');
UserManage.ADOQuery1.Active:=true;
if UserManage.ADOQuery1.RecordCount=0 then
//没有该用户则增加
begin
if UserManage.adoquery1.active=true then UserManage.adoquery1.Active:=false;
UserManage.adoquery1.SQL.Clear;
//表admin的字段有id,name,password,department,其中id为自动编号,另外三者为文本型,不允许为空
sqlstr:='insert into admin(name,password,department) values('+''''+edit1.Text+''''+','+''''+edit2.Text+''''+','+''''+ComboBox1.Text+''''+')';
UserManage.adoquery1.SQL.Add(sqlstr);
try
UserManage.ADOQuery1.Prepared;
UserManage.adoquery1.ExecSQL;
if UserManage.adoquery1.active=true then UserManage.adoquery1.Active:=false;
UserManage.adoquery1.SQL.Clear;
UserManage.adoquery1.SQL.Add('select * from admin');
UserManage.adoquery1.Active:=true;
showmessage('用户添加成功!');
edit1.Text:='';
edit1.SetFocus;
except
showmessage('用户添加失败!');
if UserManage.adoquery1.active=true then UserManage.adoquery1.Active:=false;
UserManage.adoquery1.SQL.Clear;
UserManage.adoquery1.SQL.Add('select * from admin');
UserManage.adoquery1.Active:=true;
end;
end
else
showmessage('数据表中已有该用户,不允许用户名有相同的管理员!');
except
end
else
showmessage('用户名和密码不允许为空!');
end;end.
但是,在添加用户的时候提示insert into admin(name,password,department) values ('test','1234','123')有错,不知道为什么?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货