回 帖 发 新 帖 刷新版面

主题:如何插入数据到SQL2000的表中?

小弟使用ADOQuery+DataSource+DBGrid连接SQL2000数据库。用三个ComboBoxEx控件输入字符串。按添加按钮在数据库中插入一行,并且在DBGrid中显示出来!应该怎么做?麻烦了!

回复列表 (共2个回复)

沙发

自己顶,好像使用存储过程也能做到,但是还是不会,麻烦了

板凳

unit append;

interface

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

type
  TForm1 = class(TForm)
    Cmb_A: TComboBox;//字段A的下拉框,下面类推
    Cmb_B: TComboBox;
    Cmb_C: TComboBox;
    Bt_append: TButton;
    Dts_rs: TDataSource;
    dbg_rs: TDBGrid;
    AdoQuery_rs: TADOQuery;
    procedure FormCreate(Sender: TObject);
    procedure Bt_appendClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 with adoquery_rs do
  begin
   close;
   sql.clear;
   sql.add('select empno as 员工编号,empname as 员工名称,empengname as 英文名称 from rs_emp');
   open;
  end;
end;

procedure TForm1.Bt_appendClick(Sender: TObject);
begin
 if (Cmb_A.text<>'') and  (Cmb_B.text<>'') and (Cmb_C.text<>'') then
   try
     WITH adoquery_rs do
       begin
         close;
         sql.Clear;
         sql.add('insert into rs_emp(empno,empname,empengname) values (:empno,:empname,:empengname)');
         parameters.parambyname('empno').value:=trim(Cmb_A.text);
         parameters.parambyname('empname').value:=trim(Cmb_B.text);
         parameters.parambyname('empengname').value:=trim(Cmb_C.text);
         EXECSQL;
       end;
   except
     Showmessage('对不起,数据库发生错误!');
   end;

   self.oncreate(sender);
end;

end.

我来回复

您尚未登录,请登录后再回复。点此登录或注册