编程Delphi-SQL Sever常用增删改小程序的代码

这学期数据库的实验比较多,经常设置的就是程序里面的“增删改”三个按钮了。

容错、代码都差不多,贴一份上来留个底,以后不用再敲。

 

unit UnitChanPin;

interface

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

type
  TFormChanPin = class(TForm)
    ButtonAdd: TButton;
    ADOConn: TADOConnection;
    ADOQshow: TADOQuery;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    ADOQadd: TADOQuery;
    LabelCPno: TLabel;
    LabelCPMingCheng: TLabel;
    EditCPno: TEdit;
    EditMingCheng: TEdit;
    ButtonDel: TButton;
    ButtonUpdate: TButton;
    ADOQdel: TADOQuery;
    ADOQupdate: TADOQuery;
    ButtonExit: TButton;
    LabelAbout: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure ButtonAddClick(Sender: TObject);
    procedure cpcellclick(Column: TColumn);
    procedure ButtonDelClick(Sender: TObject);
    procedure ButtonUpdateClick(Sender: TObject);
    procedure ButtonExitClick(Sender: TObject);
    procedure LabelAboutClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormChanPin: TFormChanPin;
  nullSender: TObject;

implementation

{$R *.dfm}

//获取数据浏览区中某行的数据并自动填入员工编号输入区、员工姓名输入区
procedure TFormChanPin.cpcellclick(Column: TColumn);
begin
  editcpno.Text:=dbgrid1.DataSource.DataSet.Fields[0].AsString;
  editmingcheng.Text:=dbgrid1.DataSource.DataSet.Fields[1].AsString;
end;


//显示产品表信息
procedure TFormChanPin.FormCreate(Sender: TObject);
var
  sqlshow:String;
begin
  sqlshow:='select * from ChanPin';
  adoqshow.Connection:=adoconn;
  adoqshow.SQL.Text:=sqlshow;
  adoqshow.Open;
end;


//添加新产品信息
procedure TFormChanPin.ButtonAddClick(Sender: TObject);
var
  sqlAdd:String;
  name:String;
begin
  name:=editmingcheng.Text;//获取输入数据

  if(name='') //未输入数据
  then
  begin
  messagedlg('请输入产品名称!',mterror,[mbok],0);
  exit;
  end

  else
  begin
  //判断输入名称是否已存在于数据库
  sqladd:='select * from ChanPin where MingCheng='''+name+'''';
  adoqadd.Connection:=adoconn;
  adoqadd.SQL.Text:=sqladd;
  adoqadd.Open;

  if(adoqadd.IsEmpty=false)//若数据已存在,isempty=false
  then
  begin
  messagedlg('该产品名称已存在!',mterror,[mbok],0);
  exit;
  end;

  adoqadd.Close;
  //执行添加语句
  sqlAdd:='insert into ChanPin values('''+name+''')';
  adoqadd.Connection:=adoconn;
  adoqadd.SQL.Text:=sqlAdd;
  //执行SQL语句
  try
    adoqadd.ExecSQL;
    messagedlg('输入成功!',mtinformation,[mbok],0);
    editcpno.Text:='';
    editmingcheng.Text:='';
  except
    messagedlg('输入失败!请检查输入是否符合规范。',mterror,[mbok],0);
    exit;
  end;

  formcreate(nullsender);//显示添加后的数据
  end;
end;


//删除产品表中某产品的数据
procedure TFormChanPin.ButtonDelClick(Sender: TObject);
var
  sqldel:String;
  cpno,name:String;
  DelBoxReturn:word;//用户是否确定删除

begin
  cpno:=editcpno.Text;
  name:=editmingcheng.Text;

  //判断是否已选择需要删除的数据
  if(cpno='') //未输入数据
  then
  begin
  messagedlg('未选择数据!'+chr(13)+'请在浏览区选择需要删除的产品',mterror,[mbok],0);
  exit;
  end

  else//用户已选择需要删除的数据
  //弹出提示框询问用户是否确定删除被选中的数据
  delboxreturn:=messagedlg(pchar('确定删除  '''+name+'''?'),mtwarning,[mbyes,mbno],0); //确定是否删除该数据

  if(delboxreturn=6) //用户选择“确定”,即继续删除操作
  then
  begin

  begin
  sqldel:='delete from ChanPin where CPno='''+cpno+'''';
  adoqdel.Connection:=adoconn;
  adoqdel.SQL.Text:=sqldel;
  try
    adoqdel.ExecSQL;
    messagedlg('删除成功!',mtinformation,[mbok],0);
    editcpno.Text:='';
    editmingcheng.Text:='';
  except
    messagedlg('删除失败!',mterror,[mbok],0);
    exit;
  end; //运行删除操作的SQL语句

  formcreate(nullsender);//显示删除后的数据
  end;

  end//用户选择“确定”

  else //用户选择“取消”,即取消删除操作
  begin
  exit;
  end;  //用户选择”取消“,不执行删除SQL语句,直接结束删除操作
end;


//更新产品表中的产品信息
procedure TFormChanPin.ButtonUpdateClick(Sender: TObject);
var
  sqlupdate:String;
  cpno,name:String;
begin
  cpno:=editcpno.Text;
  name:=editmingcheng.Text;

  if(cpno='') //未输入数据
  then
  begin
  messagedlg('未选择数据!'+chr(13)+'请在浏览区选择需要更新的产品。',mterror,[mbok],0);//弹出提示,要求用户输入数据
  exit;
  end

  else

  //判断输入名称是否已存在于数据库
  sqlupdate:='select * from ChanPin where MingCheng='''+name+'''';
  adoqupdate.Connection:=adoconn;
  adoqupdate.SQL.Text:=sqlupdate;
  adoqupdate.Open;

  if(adoqupdate.IsEmpty=false)//若数据已存在,isempty=false
  then
  begin
  messagedlg('该产品名称已存在!',mterror,[mbok],0);
  exit;
  end;


  begin //进行更新
  sqlupdate:='update ChanPin set MingCheng='''+name+''' where CPno='''+cpno+'''';
  adoqupdate.Connection:=adoconn;
  adoqupdate.SQL.Text:=sqlupdate;
  try
    adoqupdate.ExecSQL;
    messagedlg('更新成功!',mtinformation,[mbok],0);
    editcpno.Text:='';
    editmingcheng.Text:='';
  except
    messagedlg('更新失败!请检查输入数据是否符合规范。',mterror,[mbok],0);
    exit;
  end;

  formcreate(nullsender);//显示更新后的数据
  end;
end;


procedure TFormChanPin.ButtonExitClick(Sender: TObject);
begin
  close;
end;

procedure TFormChanPin.LabelAboutClick(Sender: TObject);
begin
  messagedlg('MadeBy Ida+chr(13)+'Jan.12,2010',mtinformation,[mbok],0);
end;

end.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值