⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitteacheredit.pas

📁 教务管理系统
💻 PAS
字号:
unit UnitTeacherEdit;

interface

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

type
  TfrmTeacherEdit = class(TForm)
    dbg: TDBGrid;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    edtName: TEdit;
    Label2: TLabel;
    dtpBirth: TDateTimePicker;
    Label3: TLabel;
    cmbSex: TComboBox;
    Label4: TLabel;
    edtHome: TEdit;
    Label5: TLabel;
    edtDept: TEdit;
    btnEdit: TButton;
    btnDel: TButton;
    btnClose: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure dbgCellClick(Column: TColumn);
    procedure btnCloseClick(Sender: TObject);
    procedure edtNameChange(Sender: TObject);
    procedure btnEditClick(Sender: TObject);
    procedure btnDelClick(Sender: TObject);
  private
    { Private declarations }
    ds: TDataSource;
    qry: TADOQuery;
    procedure FreshDBGrid;
    procedure SetEnable(b: Boolean);
  public
    { Public declarations }
  end;

var
  frmTeacherEdit: TfrmTeacherEdit;

implementation

uses UnitData;

{$R *.dfm}

procedure TfrmTeacherEdit.FreshDBGrid;
var
  query: TADOQuery;
begin
  qry.Close;
  qry.SQL.Clear;
  //重命名以便room表使用
  qry.SQL.Add('select id as 记录号,name as 姓名 from TEACHER');
  qry.Open;  // 执行
  SetEnable(not qry.Eof);  //设置变量
  if not qry.Eof then begin
    query := TADOQuery.Create(self); //创建窗体
    query.Connection := data.adoc; //与数据库连接
    query.Close;
    query.SQL.Clear;
    query.SQL.Add('select * from TEACHER where id=' + qry.FieldByName('记录号').AsString);
    query.Open;
    edtName.Text := query.FieldByName('name').AsString;
    dtpBirth.DateTime := query.FieldByName('birth').AsDateTime;
    cmbSex.ItemIndex := query.FieldByName('sex').AsInteger;
    edtHome.Text := query.FieldByName('home').AsString;
    edtDept.Text := query.FieldByName('dept').AsString;
    query.Free;
  end;
end;
  //当管理的教师为空时教师基本信息和修改删除按钮不能使用
procedure TfrmTeacherEdit.SetEnable(b: Boolean);
//传变量值给各个控件的显示属性
begin
  btnEdit.Enabled := b;
  btnDel.Enabled := b;
  edtName.Enabled := b;
  dtpBirth.Enabled := b;
  cmbSex.Enabled := b;
  edtHome.Enabled := b;
  edtDept.Enabled := b;
end;
//创建窗体本身
procedure TfrmTeacherEdit.FormCreate(Sender: TObject);
begin
  qry := TADOQuery.Create(self);  //调用数据库
  ds := TDataSource.Create(self);
  qry.Connection := data.adoc;
  ds.DataSet := qry;
  dbg.DataSource := ds;
end;

procedure TfrmTeacherEdit.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  qry.Free;
  ds.Free;
end;

procedure TfrmTeacherEdit.FormShow(Sender: TObject);
begin
  FreshDBGrid;
end;
 //点击“修改”后表格进行的处理
procedure TfrmTeacherEdit.dbgCellClick(Column: TColumn);
var
  query: TADOQuery;
begin
  SetEnable(not qry.Eof);
  if not qry.Eof then begin
    query := TADOQuery.Create(self);
    query.Connection := data.adoc;
    query.Close;
    query.SQL.Clear;
    query.SQL.Add('select * from TEACHER where id=' + qry.FieldByName('记录号').AsString); //在表中显示id和名字两个字段
    query.Open;
    edtName.Text := query.FieldByName('name').AsString;
    dtpBirth.DateTime := query.FieldByName('birth').AsDateTime;
    cmbSex.ItemIndex := query.FieldByName('sex').AsInteger;
    edtHome.Text := query.FieldByName('home').AsString;
    edtDept.Text := query.FieldByName('dept').AsString;
    query.Free;
  end;
end;

procedure TfrmTeacherEdit.btnCloseClick(Sender: TObject);
begin
  Close;
end;

procedure TfrmTeacherEdit.edtNameChange(Sender: TObject);
begin
  btnEdit.Enabled := (edtName.Text <> '') and not qry.Eof;
end;
  //点击“修改”按钮
procedure TfrmTeacherEdit.btnEditClick(Sender: TObject);
var
  query: TADOQuery;
begin
  query := TADOQuery.Create(self);
  query.Connection := data.adoc;
  query.Close;
  query.SQL.Clear;
  query.SQL.Add('update TEACHER set name=''' + edtName.Text + ''',birth=''' + DateToStr(dtpBirth.DateTime) + ''',sex=' + inttostr(cmbSex.ItemIndex) + ',home=''' + edtHome.Text + ''',dept=''' + edtDept.Text + ''' where id=' + qry.FieldByName('记录号').AsString);
  query.ExecSQL;
  query.Free;
  FreshDBGrid;
end;
 //点击“删除“按钮
procedure TfrmTeacherEdit.btnDelClick(Sender: TObject);
var
  query: TADOQuery;
begin
  if application.MessageBox(PAnsiChar('真的要删除吗?'), PAnsiChar('确认删除'), MB_YESNO + MB_ICONQUESTION + MB_DEFBUTTON2) = IDYES then begin
    query := TADOQuery.Create(self);
    query.Connection := data.adoc;
    query.Close;
    query.SQL.Clear;
    query.SQL.Add('delete * from TEACHER where id=' + qry.FieldByName('记录号').AsString);
    query.ExecSQL;
    query.Free;
    FreshDBGrid;
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -