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

📄 unit9.~pas

📁 sql server 2000 数据库与应用
💻 ~PAS
字号:
unit Unit9;

interface

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

type
  TForm9 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Button1: TButton;
    Edit1: TEdit;
    Button2: TButton;
    Button3: TButton;
    DBGrid1: TDBGrid;
    ADOQuery1: TADOQuery;
    ADOConnection1: TADOConnection;
    DataSource1: TDataSource;
    ADOQuery2: TADOQuery;
    Label4: TLabel;
    ComboBox1: TComboBox;
    Edit2: TEdit;
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure DBGrid1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form9: TForm9;
  procedure ComboboxList1;

implementation

{$R *.dfm}
procedure ComboboxList1;
begin
   form9.adoquery1.Close;
   form9.adoquery1.SQL.Clear;
   form9.adoquery1.SQL.Add('select distinct 系部编号,系部名称 from 系部班级');
   form9.adoquery1.Open;
   form9.ComboBox1.Items.Clear;
   form9.adoquery1.First;
   while not form9.adoquery1.Eof do
   begin
     //将系部编号和系部名称添加到组合框中
    form9.ComboBox1.Items.Add(form9.adoquery1.Fieldbyname('系部编号').value
     +'/'+form9.adoquery1.Fieldbyname('系部名称').value);
    form9.adoquery1.Next;
  end;
end;


procedure TForm9.Button3Click(Sender: TObject);
var
  xbbh,xbmc,s1: string;
  i:integer;
begin
  if (trim(edit1.Text)='') or (trim(edit2.Text)='') then
    application.MessageBox('数据不完整!','提示',mb_ok)
  else
  begin
    xbbh:=trim(ADOQuery2.fieldbyname('班级编号').Value);
    xbmc:=trim(ADOQuery2.fieldbyname('班级名称').Value);
    if (xbbh=trim(edit1.Text)) and (xbmc=trim(edit2.Text)) then
      application.MessageBox('数据未改变!','提示',mb_ok)
    else
    try
    s1:=trim(ComboBox1.Text);
    i:=pos('/',s1);
    if i>0 then
      xbbh:=copy(s1,1,i-1)
    else
      xbbh:='';
      adoquery1.close;
      adoquery1.sql.clear;
      s1:='update 班级表 set 班级名称='+quotedstr(trim(edit2.Text))
        +' where 系部编号='+quotedstr(xbbh)
        +' and 班级编号='+quotedstr(trim(edit1.Text));
      Adoquery1.sql.add(s1);
      Adoquery1.ExecSQL;
      adoquery2.Requery();
      application.MessageBox('班级名称修改成功!','提示',mb_ok);
    except
      on E: Exception do
        messagedlg(E.Message,mterror,[mbok],0);
    end;
  end;
end;

procedure TForm9.Button2Click(Sender: TObject);
var
  i:integer;
  s1,xbbh:string;
begin
  if (trim(edit1.Text)='') or (trim(edit2.Text)='') then
    application.MessageBox('未选择要删除的纪录!','提示',mb_ok)
  else if application.MessageBox('你确实要删除当前纪录吗?','警告!',mb_okcancel)=idok then
    begin
    s1:=trim(ComboBox1.Text);
    i:=pos('/',s1);
    if i>0 then
      xbbh:=copy(s1,1,i-1)
    else
      xbbh:='';
      adoquery1.close;
      adoquery1.sql.clear;
      Adoquery1.sql.add('delete from 班级表 where 系部编号='+quotedstr(xbbh)
        +' and 班级编号='+quotedstr(trim(edit1.Text)));
      Adoquery1.ExecSQL;
      adoquery2.Requery();
      //或者使用下面的1条语句替代上面5条语句
      //adoquery2.Delete;
      application.MessageBox('班级纪录删除成功!','提示',mb_ok);
    end;

end;

procedure TForm9.FormActivate(Sender: TObject);
begin
  comboboxlist1;
  dbgrid1.DataSource.AutoEdit:=false;
  edit1.ReadOnly:=True;
  edit1.Text:='';
  edit2.Text:='';

end;

procedure TForm9.Button1Click(Sender: TObject);
begin
  form9.Close ;
end;

procedure TForm9.ComboBox1Change(Sender: TObject);
var
  i:integer;
  s1,xbbh:string;
begin
  s1:=trim(ComboBox1.Text);
  i:=pos('/',s1);
  if i>0 then
    xbbh:=copy(s1,1,i-1)
  else
    xbbh:='';
  adoquery2.Close;
  adoquery2.SQL.Clear;
  adoquery2.SQL.Add('select 班级编号,班级名称 from 班级表'
    +' where 系部编号='+quotedstr(xbbh));
  adoquery2.Open;
end;

procedure TForm9.DBGrid1CellClick(Column: TColumn);
begin
  if not ADOQuery2.fieldbyname('班级编号').IsNull then
    edit1.Text:=trim(ADOQuery2.fieldbyname('班级编号').Value)
  else
    edit1.Text:='';
  if not ADOQuery2.fieldbyname('班级名称').IsNull then
    edit2.Text:=trim(ADOQuery2.fieldbyname('班级名称').Value)
  else
    edit2.Text:='';
end;

procedure TForm9.DBGrid1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if (key=VK_UP) or (key=VK_DOWN) then
   begin
     if not ADOQuery2.fieldbyname('班级编号').IsNull then
       edit1.Text:=trim(ADOQuery2.fieldbyname('班级编号').Value)
     else
       edit1.Text:='';
     if not ADOQuery2.fieldbyname('班级名称').IsNull then
       edit2.Text:=trim(ADOQuery2.fieldbyname('班级名称').Value)
     else
       edit2.Text:='';
   end;

end;

end.

⌨️ 快捷键说明

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