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

📄 unit11.pas

📁 学生宿舍管理系统,用于宿舍的信息管理,简单容易用.
💻 PAS
字号:
unit Unit11;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Buttons,Unit2, DB, ADODB;

type
  TForm11 = class(TForm)
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    BitBtn1: TBitBtn;
    Image1: TImage;
    ADOQuery1: TADOQuery;
    procedure BitBtn1Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form11: TForm11;

implementation

{$R *.dfm}
                          //提交注销
procedure TForm11.BitBtn1Click(Sender: TObject);
var
Query1,Query2,Query3 :TADOQuery;

begin
if Edit1.Text ='' then
  begin
    MessageBox(handle,'学号不能为空!','警告',MB_OK+MB_ICONWARNING);
    Edit1.SetFocus ;
    exit;
  end;

if Edit2.Text ='' then
  begin
    MessageBox(handle,'姓名不能为空!','警告',MB_OK+MB_ICONWARNING);
    Edit2.SetFocus ;
    exit;
  end;

ADOQuery1.Connection :=DataModule2.ADOConnection1 ;    //确认输入的学号和姓名正确与匹配否
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Add('select * from 学生信息表 where 学号='''+Edit1.Text+'''');
ADOQuery1.Open ;
if ADOQuery1.Eof  then
  begin
     MessageBox(handle,'错误的学号!','警告',MB_OK+MB_ICONWARNING);
     Edit1.SetFocus ;
     exit
  end;
if  ADOQuery1.FieldByName('姓名').AsString <> trim(Edit2.Text) then
  begin
     MessageBox(handle,'学号和姓名不匹配!','警告',MB_OK+MB_ICONWARNING);
     Edit1.SetFocus ;
     exit;
  end;

ADOQuery1.Close ;    //确认该学生是否还有住宿欠费
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Add('select * from 学期注册表 where 学号='''+Edit1.Text +'''');
ADOQuery1.Prepared ;
ADOQuery1.Open ;
while not ADOQuery1.Eof do
  begin
    if ADOQuery1.FieldByName('情况').AsString <>'已交清' then
      begin
        MessageBox(handle,'该学生有欠费,不能注销!','警告',MB_OK+MB_ICONINFORMATION);
        exit;
      end;
    ADOQuery1.Next ;
  end;


ADOQuery1.Close ;       //删除学生信息表中的该学生的信息
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Text :='delete from 学生信息表 where 学号='''+Edit1.Text+'''';
ADOQuery1.Prepared ;

Query1 :=TADOQuery.Create(self);
Query2 :=TADOQuery.Create(self);
Query3 :=TADOQuery.Create(self);
Query1.Connection :=DataModule2.ADOConnection1 ;
Query2.Connection :=DataModule2.ADOConnection1 ;
Query3.Connection :=DataModule2.ADOConnection1 ;

Query1.SQL.Clear ;      //删除学生寝室表中的该学生的信息
Query1.SQL.Text :='delete from 学生寝室表 where 学号='''+Edit1.Text+'''';
Query1.Prepared ;

Query2.SQL.Clear ;     //删除学期注册表中的该学生的信息
Query2.SQL.Text :='delete from 学期注册表 where 学号='''+Edit1.Text+'''';
Query1.Prepared ;

Query3.SQL.Clear ;     //把寝室表中的实住人数减1 ,并将状态设为'未满'
Query3.SQL.Text :='update 寝室表 set 实住人数=(实住人数-1),状态=:A where 寝室号=(select 寝室号 from 学生寝室表 where 学号='''+Edit1.Text+''')';
Query3.Parameters.ParamByName('A').Value  :='未满';
Query3.Prepared ;
try
  DataModule2.ADOConnection1.BeginTrans ;    //事务开始
  Query3.ExecSQL ;
  Query1.ExecSQL ;       //注意:Query3,Query2和Query1的执行顺序,先: Query3,后Query2和Query1
  Query2.ExecSQL ;

  ADOQuery1.ExecSQL ;
  DataModule2.ADOConnection1.CommitTrans ;
  MessageBox(handle,'注销成功!','提示',MB_OK+MB_ICONINFORMATION);
except
  DataModule2.ADOConnection1.RollbackTrans ;       //提交失败,事务回滚
  MessageBox(handle,'注销失败!','提示',MB_OK+MB_ICONWARNING);
  end;

Query1.Close ;
Query1.Free ;
Query2.Close ;
Query2.Free ;
Query3.Close ;
Query3.Free ;
end;

procedure TForm11.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then
    begin
      Edit2.SetFocus ;
    end;

end;

procedure TForm11.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then
    begin
      BitBtn1.Click;
    end;

end;

end.

⌨️ 快捷键说明

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