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

📄 unitstudentmanage.pas

📁 delphi数据库基本利用
💻 PAS
字号:
unit UnitStudentManage;

interface

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

type
  TFormStudentManage = class(TForm)
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    ButtonFirst: TButton;
    ButtonNext: TButton;
    ButtonPrev: TButton;
    ButtonLast: TButton;
    ButtonInsert: TButton;
    ButtonDelete: TButton;
    ButtonUpdate: TButton;
    ButtonLock: TButton;
    ButtonUnlock: TButton;
    ButtonClose: TButton;
    LabelID: TLabel;
    LabelName: TLabel;
    LabelSex: TLabel;
    LabelB: TLabel;
    LabelPhone: TLabel;
    LabelAddress: TLabel;
    LabelC: TLabel;
    LabelClassNumber: TLabel;
    LabelClassName: TLabel;
    EditID: TEdit;
    EditName: TEdit;
    EditPhone: TEdit;
    EditAddress: TEdit;
    EditComment: TEdit;
    EditClassName: TEdit;
    ComboBoxSex: TComboBox;
    MaskEditBirthday: TMaskEdit;
    ComboBoxClassID: TComboBox;
    ButtonAppend: TButton;
    Table2: TTable;
    Table1: TTable;
    Table1ID: TIntegerField;
    Table1Name: TStringField;
    Table1Sex: TStringField;
    Table1Birthday: TDateTimeField;
    Table1Address: TStringField;
    Table1Telephone: TStringField;
    Table1ClassID: TIntegerField;
    Table1Picture: TBlobField;
    Table1Comment: TStringField;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormResize(Sender: TObject);
    procedure ButtonInsertClick(Sender: TObject);
    procedure ButtonUpdateClick(Sender: TObject);
    procedure ButtonDeleteClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ButtonLockClick(Sender: TObject);
    procedure ButtonUnlockClick(Sender: TObject);
    procedure ButtonCloseClick(Sender: TObject);
    procedure ButtonFirstClick(Sender: TObject);
    procedure ButtonNextClick(Sender: TObject);
    procedure ButtonPrevClick(Sender: TObject);
    procedure ButtonLastClick(Sender: TObject);
    procedure ButtonAppendClick(Sender: TObject);
    procedure EditIDKeyPress(Sender: TObject; var Key: Char);
    procedure select(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormStudentManage: TFormStudentManage;

implementation

uses UnitMain,QDialogs;

{$R *.dfm}
//响应学生管理窗口关闭事件
procedure TFormStudentManage.FormClose(Sender: TObject;
  var Action: TCloseAction);
  var result:integer;
begin
  //输出提示信息
  result:=MessageDlg('你是否需要保存?',mtConfirmation
              ,[mbYes,mbNo],0,mbYes);
  if result=3 then
    //保存数据库的修改
    Table1.ApplyUpdates();
  Action:=caFree;
  FormMain.MenuStudentManage.checked:=false;
  //工具条下压
  FormMain.ToolButtonStudentManage.Down:=false;
end;
//响应窗口改变大小事件
procedure TFormStudentManage.FormResize(Sender: TObject);
begin
  //改变Dbgride的大小
  DBGrid1.Width :=FormStudentManage.Width-150;
  DBGrid1.height :=FormStudentManage.height-200;
  //设置下面按钮位置
  ButtonFirst.Top:=DBGrid1.height+130;
  ButtonNext.Top:=DBGrid1.height+130;
  ButtonPrev.Top:=DBGrid1.height+130;
  ButtonLast.Top:=DBGrid1.height+130;
  //设置右边按钮
  ButtonInsert.Left:=DBGrid1.width+30;
  ButtonDelete.Left:=DBGrid1.width+30;
  ButtonUpdate.Left:=DBGrid1.width+30;
  ButtonLock.Left:=DBGrid1.width+30;
  ButtonUnlock.Left:=DBGrid1.width+30;
  ButtonClose.Left:=DBGrid1.width+30;
end;

//响应插入按钮点击事件
procedure TFormStudentManage.ButtonInsertClick(Sender: TObject);
begin
  //插入表单
  Table1.Insert();
end;

//响应保存按钮事件
procedure TFormStudentManage.ButtonUpdateClick(Sender: TObject);
begin
  //保存数据库的修改
  Table1.ApplyUpdates();
end;

//响应删除按钮事件
procedure TFormStudentManage.ButtonDeleteClick(Sender: TObject);
begin
  //删除相应的行
  Table1.Delete();
end;

//响应窗口显示事件
procedure TFormStudentManage.FormShow(Sender: TObject);
begin
  FormResize(Sender);
  //禁用锁定按钮
  ButtonLock.Enabled:=false;
  //初始化班级下拉框
  Table2.Open();//table2.Active:=true;
  //遍历数据库
  while(Table2.Eof=false) do
  begin
    ComboBoxClassID.Items.Add(Table2.FieldValues['id']);
    Table2.Next();
  end;
  Table2.Close();
  //设置默认值
  //ComboBoxClassID.ItemIndex:=0;
end;

//响应锁定按钮事件
procedure TFormStudentManage.ButtonLockClick(Sender: TObject);
begin
  DBGrid1.Readonly:=true;
  //禁用相应按钮
  ButtonLock.Enabled:=false;
  ButtonInsert.Enabled :=false;
  ButtonDelete.Enabled :=false;
  ButtonUpdate.Enabled :=false;
  ButtonAppend.Enabled :=false;
  //启用解锁按钮
  ButtonUnLock.Enabled:=true;
end;

//响应解锁按钮事件
procedure TFormStudentManage.ButtonUnlockClick(Sender: TObject);
begin
  DBGrid1.Readonly:=false;
  //启用相应按钮
  ButtonLock.Enabled:=true;
  ButtonInsert.Enabled :=true;
  ButtonDelete.Enabled :=true;
  ButtonUpdate.Enabled :=true;
  ButtonAppend.Enabled :=true;
  //禁用解锁按钮
  ButtonUnLock.Enabled:=false;
end;

//响应关闭按钮事件
procedure TFormStudentManage.ButtonCloseClick(Sender: TObject);
begin
  //响应窗口关闭事件
  FormStudentManage.Close;
end;

//响应首行记录事件
procedure TFormStudentManage.ButtonFirstClick(Sender: TObject);
begin
  //指向表的第一行
  Table1.First();
end;

// 响应下一行记录事件
procedure TFormStudentManage.ButtonNextClick(Sender: TObject);
begin
  //指向表的下一行
  Table1.Next();
end;

//响应前一行记录事件
procedure TFormStudentManage.ButtonPrevClick(Sender: TObject);
begin
  //指向表的前一行
  Table1.Prior();
end;

//响应最后一行按钮事件
procedure TFormStudentManage.ButtonLastClick(Sender: TObject);
begin
  //指向表的最后一行
  Table1.Last();
end;

procedure TFormStudentManage.ButtonAppendClick(Sender: TObject);
begin
   if(ComboBoxClassID.Text<>'') and (EditID.Text<>'')then
   begin
     //往表中追加一行
     Table1.Append();
     //设置各个字段
     Table1.FieldValues['ID']:=EditID.Text;
     Table1.FieldValues['Name']:=EditName.Text;
     Table1.FieldValues['Sex']:=ComboBoxSex.Text;
     Table1.FieldValues['Birthday']:=MaskEditBirthday.Text;
     Table1.FieldValues['Address']:=EditAddress.Text;
     Table1.FieldValues['Telephone']:=EditPhone.Text;
     Table1.FieldValues['Comment']:=EditComment.Text;
     Table1.FieldValues['ClassID']:=StrTOInt(ComboBoxClassID.Text);
  end
  else
  MessageDlg('学号和班级编号不能为空',mtInformation
              ,[mbOK],0,mbOK);
end;

procedure TFormStudentManage.EditIDKeyPress(Sender: TObject;
  var Key: Char);
begin
  //判断输入的是否为数字且控制长度小于3
   if(key>='0')and(key<='9')and (length(EditID.Text)<3)or(key=#8)then
     key:=key
   else
     key:=#0;
end;

//响应班级下拉框的选择时间
procedure TFormStudentManage.select(Sender: TObject);
begin
  //打开Table2
  Table2.Open();
  //遍历数据库
  while(Table2.Eof=false) do
  begin
    if(Table2.FieldValues['id']=ComboBoxClassID.Text)then
    begin
      EditClassName.Text:=Table2.FieldValues['name'];
      break;
    end;
    Table2.Next();
  end;
  Table2.Close();
end;
end.

⌨️ 快捷键说明

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