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

📄 unit3.~pas

📁 学籍管理系统 基于sql2000 实现插入删除修改 等功能 不错
💻 ~PAS
字号:
unit Unit3;

interface

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

type
  TForm3 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Panel1: TPanel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    GroupBox1: TGroupBox;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    BitBtn4: TBitBtn;
    BitBtn6: TBitBtn;
    BitBtn3: TBitBtn;
    GroupBox2: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Edit2: TEdit;
    CheckBox1: TCheckBox;
    Label6: TLabel;
    BitBtn5: TBitBtn;
    answer_edit: TLabeledEdit;
    edit1: TComboBox;
    TabSheet3: TTabSheet;
    GroupBox3: TGroupBox;
    banji_edit: TLabeledEdit;
    BitBtn7: TBitBtn;
    BitBtn8: TBitBtn;
    Label7: TLabel;
    xuezhibox: TComboBox;
    procedure BitBtn2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure Label6MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Label6MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Label6MouseLeave(Sender: TObject);
    procedure Label6Click(Sender: TObject);
    procedure BitBtn8Click(Sender: TObject);
    procedure BitBtn7Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;
  const
  CCreateMDB='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s';
implementation

uses Unit4, Unit1, Unit2;

{$R *.dfm}

procedure TForm3.BitBtn2Click(Sender: TObject);
begin
application.Terminate;
end;

procedure TForm3.FormCreate(Sender: TObject);
 var
  fname,fname1:string;
  sqlstring:string;
  my_adoquery:TADOquery;
begin
  form1.passed:=false;
  if not DirectoryExists(application.GetNamePath+'user/') then   //目录存在否
      CreateDirectory(PChar(application.GetNamePath+'user/'),nil);    //创建目录
      if not DirectoryExists(application.GetNamePath+'user/login') then   //目录存在否
      CreateDirectory(PChar(application.GetNamePath+'user/login'),nil);    //创建目录

      fname1:=application.GetNamePath+'user/login/'+'用户.mdb';
      if not  Fileexists(fname1) then
        begin
          form1.createdatabase(fname1);
          sqlstring:='create table 用户表(编号 COUNTER PRIMARY KEY,用户名 char(10) not null,密码 char(50),问题 char(50),答案 char(50))';//创建用户表
          form1.createdatasheet(fname1,sqlstring); //调用创建数据表函数
          sqlstring:='create table 登录表(编号 COUNTER PRIMARY KEY,用户名 char(10) not null)';   //创建登陆表
          form1.createdatasheet(fname1,sqlstring);//调用创建数据表函数
        end;
      my_adoquery:=Tadoquery.Create(self);//创建adoquery组建
      my_adoquery.connectionstring:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+fname1+';';
 //程序初始化判断存在用户不!存在则进入登陆页面,否则进入注册页面
 with my_adoquery do
     begin
        close;
        sql.Clear;
        sql.Add('select * from 用户表');
        open;
           if recordcount<1 then
             PageControl1.ActivePage:=TabSheet2
             else
             PageControl1.ActivePage:=TabSheet1;
          close;
          sql.Clear;
          sql.Add('select * from 登录表');
          open;
          first;
         while not eof  do
             begin
             edit1.Items.Add(fieldbyname('用户名').AsString);
             next;
             end;
          end;

      my_adoquery.Free;

     end;


procedure TForm3.BitBtn1Click(Sender: TObject);
var
sqlstring:string;
my_adoquery:Tadoquery;
fname1:string;
user_file:string;
begin
   fname1:=application.GetNamePath+'user/login/'+'用户.mdb';
   my_adoquery:=Tadoquery.Create(self);//创建adoquery组建
   my_adoquery.connectionstring:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+fname1+';';
   if edit1.text='' then
     begin
        showmessage('用户名不能为空!');
        exit;
     end;
   if checkbox1.Checked then  //判断是否保存用户名
     begin
       with my_adoquery do
         begin
           close;
           sql.Clear;
           sql.Add('select * from 登录表 where 用户名=:user');
           my_adoquery.Parameters.ParamByName('user').Value:=trim(edit1.Text);
           open;
           if recordcount<1 then  //登陆表中不存在次用户名则加入
             begin
              close;
              sql.Clear;
              sql.Add('insert into 登录表 (用户名) values(:user)');
              my_adoquery.Parameters.ParamByName('user').Value:=trim(edit1.Text);
              execsql
             end
         end;
     end;
 with  my_adoquery do     //判断用户名和密码正确否
   begin
     close;
     sql.clear;
     sqlstring:='select * from 用户表 where 用户名=:user and 密码=:pass';
     sql.Add(sqlstring);
     my_adoquery.Parameters.ParamByName('user').Value:=trim(edit1.Text);
     my_adoquery.Parameters.ParamByName('pass').Value:=trim(edit2.Text);
     open;
     if recordcount>=1 then  //存在则进入主页面
       begin
         form1.user:=trim(edit1.text);
         form1.passed:=true;
         form3.close;
         showmessage('欢迎使用!');
          form1.StatusBar1.Panels[0].Text:='当前用户:'+form1.user;
          form1.StatusBar1.Panels[1].text:='欢迎使用班级管理系统';
          form1.StatusBar1.Panels[2].text:=datetimetostr(date);
      end
     else
  showmessage('密码错误!');   //不存在则报错
end;
edit1.Text:='';
edit2.Clear;
end;

procedure TForm3.BitBtn6Click(Sender: TObject);
begin
application.Terminate;
end;

procedure TForm3.BitBtn4Click(Sender: TObject);
var
  cat,cat1:Variant;
  fname,fname1:string;
  user_data:string;
  my_adoquery,db_adoquery,db1_adoquery:Tadoquery;
  sqlstring,sqlstring1:string;
  flag:boolean;
  user_file:string;
begin
  user_file:=application.GetNamePath+'user/'+edit3.Text;
  if not DirectoryExists(user_file) then   //用户目录存在否
  CreateDirectory(PChar(user_file),nil);    //用户创建目录
   if not DirectoryExists(application.GetNamePath+'user/'+edit3.Text+'/pic') then   //目录存在否
   CreateDirectory(PChar(application.GetNamePath+'user/'+edit3.Text+'/pic'),nil);    //创建目录
   flag:=true;
   user_data:=application.GetNamePath+'user/login/用户.mdb';
   fname:=application.GetNamePath+'user/'+edit3.Text+'/班级.mdb';
   db_adoquery:=Tadoquery.create(self);
   my_adoquery:=Tadoquery.Create(self);
   db_adoquery.connectionstring:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+user_data+';';
   my_adoquery.connectionstring:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+fname+';';
  // sqlstring:='create table '+edit3.Text+'班级表(编号 COUNTER PRIMARY KEY,姓名 char(10) not null,性别 char(2),年龄 char(3),家庭住址 memo,出生年月 date)';
   if (edit3.Text='') or (edit5.Text='') then
     begin
      showmessage('请输入必要数据!');
      exit;
     end;
 with  db_adoquery do
   begin
     close;
     sql.clear;
     sqlstring1:='select * from 用户表 where 用户名=:user';
     sql.Add(sqlstring1);
     db_adoquery.Parameters.ParamByName('user').Value:=trim(edit3.Text);
     open;
     if recordcount>=1 then
       begin
         showmessage('用户名已经存在,请另外选择!');
         exit;
       end
      else
        begin
           sql.Clear;
           sqlstring1:='insert into 用户表(用户名,密码,问题,答案) values(:user,:pass,:question,:answer)';
           sql.add(sqlstring1);
           db_adoquery.Parameters.ParamByName('user').Value:=trim(edit3.Text);
           db_adoquery.Parameters.ParamByName('pass').Value:=trim(edit4.Text);
           db_adoquery.Parameters.ParamByName('question').Value:=trim(edit5.Text);
           db_adoquery.Parameters.ParamByName('answer').Value:=trim(answer_edit.Text);
             try
               execsql;
             except
               flag:=false;
               showmessage('创建失败!');
             end;
        end;
        fname:=application.GetNamePath+'user/'+edit3.Text+'/班级.mdb';
     if  not Fileexists(fname) then
              begin
                 cat1:=CreateOleObject('ADOX.Catalog');
                 cat1.Create(Format(CCreateMDB,[fname]));
                 cat1:=Unassigned;
                     try
                        sqlstring:='create table 班级表(编号 COUNTER PRIMARY KEY,名称 char(50) not null,学制 integer)';
                         my_adoquery.SQL.Clear ;
                         my_adoquery.SQL.Add(sqlstring);
                         my_adoquery.ExecSQL;

                         //showmessage('创建成功!');
                     except
                          showmessage( '创建用户数据表失败!');
                  end;

 end;
 end;
  //if flag then
     // begin
       //if messagedlg('用户创建成功!现在登陆吗?',mtinformation,[mbyes,mbno],0)=mryes then
         // begin

          PageControl1.ActivePage:=TabSheet3;
         // end;
     //end;
 
 db_adoquery.Free;
 db1_adoquery.Free;


 end;
procedure TForm3.BitBtn3Click(Sender: TObject);
begin
edit3.Clear;
edit4.Clear;
edit5.Clear;
end;

procedure TForm3.BitBtn5Click(Sender: TObject);
begin
edit1.Text:='';
edit2.Text:='';
end;

procedure TForm3.Label6MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
label6.Font.Color:=clgreen;
label6.Cursor:=crHandPoint;
end;

procedure TForm3.Label6MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
label6.Font.Color:=clblue;
label6.Cursor:=crDefault;
end;

procedure TForm3.Label6MouseLeave(Sender: TObject);
begin
label6.Font.Color:=clblue;
label6.Cursor:=crDefault;
end;

procedure TForm3.Label6Click(Sender: TObject);
begin
form4:=Tform4.Create(self);
form4.ShowModal;
form4.Free;
end;

procedure TForm3.BitBtn8Click(Sender: TObject);
begin
application.Terminate;
end;

procedure TForm3.BitBtn7Click(Sender: TObject);
var
  cat,cat1:Variant;
  fname,fname1:string;
  sqlstring:string;
  my_adoquery:TADOquery;
begin
   fname:=application.GetNamePath+'user/'+edit3.text+'/'+banji_edit.Text+'.mdb';
   fname1:=application.GetNamePath+'user/'+edit3.text+'/'+'班级.mdb';
   my_adoquery:=Tadoquery.Create(self);
   my_adoquery.connectionstring:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+fname+';';
 if  not Fileexists(fname) then
              begin
                 cat1:=CreateOleObject('ADOX.Catalog');
                 cat1.Create(Format(CCreateMDB,[fname]));
                 cat1:=Unassigned;
                     try
                        sqlstring:='create table 学生信息表(编号 COUNTER PRIMARY KEY,学号 char(12) not null,姓名 char(10),性别 char(2),出生年月 date,';
                         sqlstring:=sqlstring+'籍贯 char(20),入学性质 char(10),政治面貌 char(10),专业 char(20),系别 char(20),班级 char(10),相片 char(10),家庭地址 char(100))';
                         my_adoquery.SQL.Clear ;
                         my_adoquery.SQL.Add(sqlstring);
                         my_adoquery.ExecSQL;

                         //showmessage('创建成功!');
                     except
                          showmessage( '创建用户数据表失败!');
                  end;
               try
                        sqlstring:='create table 补考表(编号 COUNTER PRIMARY KEY,学号 char(12),姓名 char(10),科目 char(20),学期 char(15))';
                         my_adoquery.SQL.Clear ;
                         my_adoquery.SQL.Add(sqlstring);
                         my_adoquery.ExecSQL;

                         //showmessage('创建成功!');
                     except
                          showmessage( '创建用户数据表失败!');
                  end;
            try
                        sqlstring:='create table 奖励表(编号 COUNTER PRIMARY KEY,学号 char(12),姓名 char(10),班级 char(10),学期 char(15),内容 char(200))';
                         my_adoquery.SQL.Clear ;
                         my_adoquery.SQL.Add(sqlstring);
                         my_adoquery.ExecSQL;

                         //showmessage('创建成功!');
                     except
                          showmessage( '创建用户数据表失败!');
                  end;
                  try
                        sqlstring:='create table 惩罚表(编号 COUNTER PRIMARY KEY,学号 char(12),姓名 char(10),班级 char(10),学期 char(15),内容 char(200))';
                         my_adoquery.SQL.Clear ;
                         my_adoquery.SQL.Add(sqlstring);
                         my_adoquery.ExecSQL;

                         //showmessage('创建成功!');
                     except
                          showmessage( '创建用户数据表失败!');
                  end;
      
 end;
  sqlstring:='insert into 班级表(名称,学制) values(:class,:xuezhi)';
  my_adoquery.connectionstring:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+fname1+';';
  with my_adoquery do
    begin
      close;
      sql.Clear;
      sql.Add(sqlstring);
      Parameters.ParamByName('class').Value:=trim(banji_edit.Text);
     Parameters.ParamByName('xuezhi').Value:=trim(xuezhibox.Text);
     execsql;
    end;
 if messagedlg('用户创建成功!现在登陆吗?',mtinformation,[mbyes,mbno],0)=mryes then
         begin

          PageControl1.ActivePage:=TabSheet1;
          end;
     my_adoquery.Free;
end;

end.

⌨️ 快捷键说明

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