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

📄 unit1.pas

📁 学生信息的管理,有建立的数据库,以及各个表之间的联系,然后有一个界面将它们联系在一起
💻 PAS
字号:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    ToolBar1: TToolBar;
    Label1: TLabel;
    GroupBox1: TGroupBox;
    Label2: TLabel;
    Edit1: TEdit;
    Label3: TLabel;
    Edit2: TEdit;
    Label4: TLabel;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    Label5: TLabel;
    Edit3: TEdit;
    Label6: TLabel;
    Edit4: TEdit;
    Label7: TLabel;
    Edit5: TEdit;
    Label8: TLabel;
    Edit6: TEdit;
    Label9: TLabel;
    Edit7: TEdit;
    GroupBox2: TGroupBox;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    CheckBox6: TCheckBox;
    CheckBox7: TCheckBox;
    CheckBox8: TCheckBox;
    CheckBox9: TCheckBox;
    CheckBox10: TCheckBox;
    GroupBox3: TGroupBox;
    Label10: TLabel;
    Edit8: TEdit;
    Label11: TLabel;
    Edit9: TEdit;
    Label12: TLabel;
    Edit10: TEdit;
    Label13: TLabel;
    Edit11: TEdit;
    Label14: TLabel;
    Edit12: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    DBComboBox1: TDBComboBox;
    DBNavigator1: TDBNavigator;
    ADOQuery1: TADOQuery;
    ADOQuery2: TADOQuery;
    Button9: TButton;
    procedure DBComboBox1Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

  procedure Tform1.formcreate(Sender:TObject);
begin
 ADOQuery2.Open;
  while not ADOQuery2.Eof do
  begin
    DBComboBox1.Items.Add(ADOQuery2.FieldByName('班级').AsString);
    ADOQuery2.Next;
  end;
  DBComboBox1.ItemIndex:=0;
  ADOQuery1.Parameters.ParamValues['cid']:=trim(DBComboBox1.Text);
  ADOQuery1.Open;
  Form1.ReadRec;
end;
procedure TForm1.ReadRec;
begin
 with form1 do
  begin
    if ADOQuery1.FieldValues['t_stud_detail.学号']=Null then
      Labelededit2.Text:=''
    else LabeledEdit2.Text:=ADOQuery1.FieldValues['t_stud_detail.学号'];
    if ADOQuery1.FieldValues['姓名']=Null then
      Labelededit1.Text:=''
    else LabeledEdit1.Text:=ADOQuery1.FieldValues['姓名'];
    if (AdoQuery1.FieldValues['性别']=Null) or (AdoQuery1.FieldValues['性别']='男') then
      RadioButton1.Checked:=true
    else RadioButton2.Checked;
    if ADOQuery1.FieldValues['EMAIL']=Null then
      Labelededit6.Text:=''
    else LabeledEdit6.Text:=ADOQuery1.FieldValues['EMAIL'];
    if ADOQuery1.FieldValues['电话']=Null then
      Labelededit4.Text:=''
    else LabeledEdit4.Text:=ADOQuery1.FieldValues['电话'];
    if ADOQuery1.FieldValues['地址']=Null then
      Labelededit5.Text:=''
    else LabeledEdit5.Text:=ADOQuery1.FieldValues['地址'];
    LabeledEdit3.Text:=DBcombobox1.Text;
    LabeledEdit7.Text:=ADOQuery2.FieldValues['专业'];
    if ADOQuery1.FieldValues['课代表']=Null then
      Labelededit8.Text:=''
    else LabeledEdit8.Text:=ADOQuery1.FieldValues['课代表'];
    //由于在学生成绩表中,成绩允许为“空”,但“Null”类型在转换为
    //“String”类型时会产生异常,故通过下面处理来消除异常
    if ADOQuery1.FieldValues['平时成绩']=Null then
      Labelededit9.Text:=''
    else LabeledEdit9.Text:=ADOQuery1.FieldValues['平时成绩'];
    if ADOQuery1.FieldValues['理论成绩']=Null then
      Labelededit10.Text:=''
    else LabeledEdit10.Text:=ADOQuery1.FieldValues['理论成绩'];
    if ADOQuery1.FieldValues['实验成绩']=Null then
      Labelededit11.Text:=''
    else LabeledEdit11.Text:=ADOQuery1.FieldValues['实验成绩'];
    if ADOQuery1.FieldValues['总评成绩']=Null then
      Labelededit12.Text:=''
    else LabeledEdit12.Text:=ADOQuery1.FieldValues['总评成绩'];
    if ADOQuery1.FieldValues['备注']=Null then
      Labelededit13.Text:=''
    else LabeledEdit13.Text:=ADOQuery1.FieldValues['备注'];
  end;
  if Adoquery1.Fields[15].Value='√' then CheckBox1.Checked:=true else CheckBox1.Checked:=false;
  if Adoquery1.Fields[16].Value='√' then CheckBox2.Checked:=true else CheckBox2.Checked:=false;
  if Adoquery1.Fields[17].Value='√' then CheckBox3.Checked:=true else CheckBox3.Checked:=false;
  if Adoquery1.Fields[18].Value='√' then CheckBox4.Checked:=true else CheckBox4.Checked:=false;
  if Adoquery1.Fields[19].Value='√' then CheckBox5.Checked:=true else CheckBox5.Checked:=false;
  if Adoquery1.Fields[20].Value='√' then CheckBox6.Checked:=true else CheckBox6.Checked:=false;
  if Adoquery1.Fields[21].Value='√' then CheckBox7.Checked:=true else CheckBox7.Checked:=false;
  if Adoquery1.Fields[22].Value='√' then CheckBox8.Checked:=true else CheckBox8.Checked:=false;
  if Adoquery1.Fields[23].Value='√' then CheckBox9.Checked:=true else CheckBox9.Checked:=false;
  if Adoquery1.Fields[24].Value='√' then CheckBox10.Checked:=true else CheckBox10.Checked:=false;
end;

procedure TForm1.WriteRec;
begin
  with form1 do
  begin
    ADOQuery1.FieldValues['t_stud_detail.学号']:=LabeledEdit2.Text;
    ADOQuery1.FieldValues['t_stud_total.学号']:=LabeledEdit2.Text;
    ADOQuery1.FieldValues['t_stud_check.学号']:=LabeledEdit2.Text;
    ADOQuery1.FieldValues['姓名']:=LabeledEdit1.Text;
    if RadioButton1.Checked=true then
      AdoQuery1.FieldValues['性别']:='男'
    else AdoQuery1.FieldValues['性别']:='女';
    ADOQuery1.FieldValues['EMAIL']:=LabeledEdit6.Text;
    ADOQuery1.FieldValues['电话']:=LabeledEdit4.Text;
    ADOQuery1.FieldValues['地址']:=LabeledEdit5.Text;
    ADOQuery1.FieldValues['班级']:=LabeledEdit3.Text;
    ADOQuery1.FieldValues['课代表']:=LabeledEdit8.Text;
    if Labelededit9.Text='' then ADOQuery1.FieldValues['平时成绩']:=Null
    else ADOQuery1.FieldValues['平时成绩']:=strtoint(Labelededit9.Text);
    if Labelededit10.Text='' then ADOQuery1.FieldValues['理论成绩']:=Null
    else ADOQuery1.FieldValues['理论成绩']:=strtoint(Labelededit10.Text);
    if Labelededit11.Text='' then ADOQuery1.FieldValues['实验成绩']:=Null
    else ADOQuery1.FieldValues['实验成绩']:=strtoint(Labelededit11.Text);
    if Labelededit12.Text='' then ADOQuery1.FieldValues['总评成绩']:=Null
    else ADOQuery1.FieldValues['总评成绩']:=strtoint(Labelededit12.Text);
    ADOQuery1.FieldValues['备注']:=Labelededit13.Text;
  end;
  if CheckBox1.Checked=true then Adoquery1.Fields[15].Value:='√' else Adoquery1.Fields[15].Value:='△';
  if CheckBox2.Checked=true then Adoquery1.Fields[16].Value:='√' else Adoquery1.Fields[16].Value:='△';
  if CheckBox3.Checked=true then Adoquery1.Fields[17].Value:='√' else Adoquery1.Fields[17].Value:='△';
  if CheckBox4.Checked=true then Adoquery1.Fields[18].Value:='√' else Adoquery1.Fields[18].Value:='△';
  if CheckBox5.Checked=true then Adoquery1.Fields[19].Value:='√' else Adoquery1.Fields[19].Value:='△';
  if CheckBox6.Checked=true then Adoquery1.Fields[20].Value:='√' else Adoquery1.Fields[20].Value:='△';
  if CheckBox7.Checked=true then Adoquery1.Fields[21].Value:='√' else Adoquery1.Fields[21].Value:='△';
  if CheckBox8.Checked=true then Adoquery1.Fields[22].Value:='√' else Adoquery1.Fields[22].Value:='△';
  if CheckBox9.Checked=true then Adoquery1.Fields[23].Value:='√' else Adoquery1.Fields[23].Value:='△';
  if CheckBox10.Checked=true then Adoquery1.Fields[24].Value:='√' else Adoquery1.Fields[24].Value:='△';
end;

procedure TForm1.DBComboBox1Change(Sender: TObject);
begin
     ADOQUERY1.Close;
  ADOQuery1.Parameters.ParamValues['cid']:=trim(DBComboBox1.Text);
  ADOQuery1.open;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
     ADOQuery1.First;
      form1.ReadRec;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
    ADOQuery1.Last;
    form1.ReadRec;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
       ADOQuery1.Prior;
       form1.ReadRec;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
    ADOQuery1.Next;
    form1.ReadRec;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
 Button5.Enabled:=false;
  Button7.Enabled:=false;
  Button9.Enabled:=false;
  Edit1.Enabled:=true;
  Adoquery1.Insert;
  Form1.ReadRec;
  Button6.Enabled:=true;
  Button8.Enabled:=true;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin

 Adoquery1.Edit;
  Form1.WriteRec;
  Adoquery1.Post;
  Form1.ReadRec;
  Button6.Enabled:=false;
  Button8.Enabled:=false;
  end;
procedure TForm1.Button8Click(Sender: TObject);
begin
        try
    FORM1.WriteRec;
    Adoquery1.Post;
  except
    showmessage('学号不能为空,成绩必须为数字');
    Adoquery1.Cancel;
  end;
  Labelededit2.Enabled:=false;
  Button5.Enabled:=true;
  Button7.Enabled:=true;
  Button9.Enabled:=true;
  Button6.Enabled:=false;
  Button8.Enabled:=false;
  form1.ReadRec;

end;

procedure TForm1.Button6Click(Sender: TObject);
begin
        Adoquery1.Cancel;
  form1.ReadRec;
  Labelededit2.Enabled:=false;
  Button5.Enabled:=true;
  Button7.Enabled:=true;
  Button9.Enabled:=true;
  Button6.Enabled:=false;
  Button8.Enabled:=false;
end;

procedure TForm1.Button9Click(Sender: TObject);
   Var SQLStr:LPStr;
begin
   if ADOQuery1.CanModify then
    begin
      if MessageDlg('确实要删除该记录吗? 记录删除将无法恢复!',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
        begin
          try
            ADOQuery1.Close;
            SQLStr:=ADOQuery1.SQL.GetText();
            ADOQuery1.SQL.Clear;
            ADOQuery1.SQL.Add('delete from t_stud_check where 学号="'+trim(LabeledEdit2.Text)+'"');
            ADOQuery1.ExecSQL;
            ADOQuery1.SQL.Clear;
            ADOQuery1.SQL.Add('delete from t_stud_detail where 学号="'+trim(LabeledEdit2.Text)+'"');
            ADOQuery1.ExecSQL;
            ADOQuery1.SQL.Clear;
            ADOQuery1.SQL.Add('delete from t_stud_total where 学号="'+trim(LabeledEdit2.Text)+'"');
            ADOQuery1.ExecSQL;
            ADOQuery1.SQL.Clear;
            ADOQuery1.SQL.Add(SQLStr);
            ADOQuery1.Parameters.ParamValues['cid']:=trim(DBComboBox1.Text);
            ADOQuery1.Open;
           except
            ADOQuery1.Cancel;
            showmessage('删除记录出错!');
          end;
        end;
    end;
end;
end;

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
  ReadRec();
end;
end.

⌨️ 快捷键说明

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