procedure TF_add.Button1Click(Sender: TObject);
var
cmdstr1:string;
//cmdstr2:string;
sex:string;
begin
with adoQuery1 do
begin
adoquery1.Close;
adoquery1.SQL.Clear;
cmdstr1:='select * from person where id='+quotedstr(edit1.Text);
adoquery1.SQL.Add(cmdstr1);
adoquery1.Open;
if adoquery1.RecordCount=0 then
begin
begin
if radiogroup1.Items[radiogroup1.ItemIndex]='男' then
sex:='m'
else
sex:='f';
//判断性别
end;
//adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into person(id,password,name,sex,birthday,department,job,edu_level,specialty,address,tel,email)');
adoquery1.SQL.Add('values(:pid,:ppassword,:pname,:psex,:pbir,:pdepart,:pjob,:pedu,:pspecialty,:padd,:ptel,:pemail)');
Parameters.Items[0].Value:=Edit1.Text;
Parameters.Items[1].Value:=Edit2.Text;
Parameters.Items[2].Value:=Edit3.Text;
Parameters.Items[3].Value:=sex;
Parameters.Items[4].Value:=datetimepicker1.Datetime;
Parameters.Items[5].Value:=combobox1.Text;
Parameters.Items[6].Value:=combobox2.Text;
Parameters.Items[7].Value:=combobox3.Text;
Parameters.Items[8].Value:=edit5.Text;
Parameters.Items[9].Value:=Edit6.Text;
Parameters.Items[10].Value:=Edit7.Text;
Parameters.Items[11].Value:=Edit8.Text; //+quotedstr(edit1.Text)+','+quotedstr(edit2.Text)+','+quotedstr(edit3.Text)+','+quotedstr(sex)+','+datetimetostr(datetimepicker1.DateTime)+','
// +quotedstr(combobox1.Text )+','+quotedstr(combobox2.Text)+','+quotedstr(combobox3.Text )+','+quotedstr(edit5.Text)+','+quotedstr(edit6.Text)+','
// +quotedstr(edit7.Text)+','+quotedstr(edit8.Text)+')';
if messagedlg('确定修改?',mtconfirmation,[mbyes,mbno],0)=mryes then adoquery1.ExecSQL; adoquery1.Close;
adoquery1.Open;
end
else
if (messagedlg('该用户已存在!是否重新添加?',mtinformation,[mbyes,mbno],0)<>mryes) then
close; end;
end;
var
cmdstr1:string;
//cmdstr2:string;
sex:string;
begin
with adoQuery1 do
begin
adoquery1.Close;
adoquery1.SQL.Clear;
cmdstr1:='select * from person where id='+quotedstr(edit1.Text);
adoquery1.SQL.Add(cmdstr1);
adoquery1.Open;
if adoquery1.RecordCount=0 then
begin
begin
if radiogroup1.Items[radiogroup1.ItemIndex]='男' then
sex:='m'
else
sex:='f';
//判断性别
end;
//adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into person(id,password,name,sex,birthday,department,job,edu_level,specialty,address,tel,email)');
adoquery1.SQL.Add('values(:pid,:ppassword,:pname,:psex,:pbir,:pdepart,:pjob,:pedu,:pspecialty,:padd,:ptel,:pemail)');
Parameters.Items[0].Value:=Edit1.Text;
Parameters.Items[1].Value:=Edit2.Text;
Parameters.Items[2].Value:=Edit3.Text;
Parameters.Items[3].Value:=sex;
Parameters.Items[4].Value:=datetimepicker1.Datetime;
Parameters.Items[5].Value:=combobox1.Text;
Parameters.Items[6].Value:=combobox2.Text;
Parameters.Items[7].Value:=combobox3.Text;
Parameters.Items[8].Value:=edit5.Text;
Parameters.Items[9].Value:=Edit6.Text;
Parameters.Items[10].Value:=Edit7.Text;
Parameters.Items[11].Value:=Edit8.Text; //+quotedstr(edit1.Text)+','+quotedstr(edit2.Text)+','+quotedstr(edit3.Text)+','+quotedstr(sex)+','+datetimetostr(datetimepicker1.DateTime)+','
// +quotedstr(combobox1.Text )+','+quotedstr(combobox2.Text)+','+quotedstr(combobox3.Text )+','+quotedstr(edit5.Text)+','+quotedstr(edit6.Text)+','
// +quotedstr(edit7.Text)+','+quotedstr(edit8.Text)+')';
if messagedlg('确定修改?',mtconfirmation,[mbyes,mbno],0)=mryes then adoquery1.ExecSQL; adoquery1.Close;
adoquery1.Open;
end
else
if (messagedlg('该用户已存在!是否重新添加?',mtinformation,[mbyes,mbno],0)<>mryes) then
close; end;
end;
解决方案 »
- 请问一个数据处理的问题!!1
- AdoQuery或者打taset有没有实现象select distinct功能的方法
- 怎样拖动Canvas.textout写出的文字?
- 一个页面显示不下,加一个上下的滚动条,怎么设置?
- 那位老兄帮我看看我的这段代吗?出错在什么地方?
- delphi 捕捉 js事件问题,请大侠没帮帮忙!
- 我想要csdn for delphi的最新或者所有的数据(要不delphibbs也行),哪里有啊?
- delphi在网页上上传成固定图片代码怎么写
- 怎么编辑project
- 上传下裁问题??
- 关于FIREMONKEY开发IPAD程序的问题
- 达人高手指点一下,关于delphi调用VC开发图像处理模块dll,参数传递问题
查你的字段及类型,不行的话先少插几个字段试试(如去掉可能出问题的birthday)
begin
if (cxDateEdit3.Text='') or (cxComboBox3.Text='') or (cxComboBox4.Text='') or (cxTextEdit1.Text='') or (cxTextEdit2.Text='') or (cxTextEdit3.Text='') or (rzComboBox1.Text='') or (rzComboBox2.Text='') or (rzComboBox3.Text='')then
begin
MessageBox(Self.Handle,'必填数据,不能为空,请重新输入','系统提示',mb_iconquestion)
end
else
begin
with ADOQuery1 do
begin
Insert;
FieldByName('Gtdate').AsString:=cxDateEdit3.Text;
FieldByName('Gtfs').AsString:=cxComboBox3.Text;
FieldByName('namelx').AsString:=cxComboBox4.Text;
FieldByName('cell').AsString:=cxTextEdit1.Text;
FieldByName('goutry').AsString:=cxTextEdit2.Text;
FieldByName('shoudafmc').AsString:=RzComboBox1.Text;
FieldByName('dxowzw').AsString:=cxTextEdit3.Text;
FieldByName('gtlx').AsString:=RzComboBox2.Text;
FieldByName('gtxm').AsString:=RzComboBox3.Text;
FieldByName('gtnr').AsString:=cxMemo1.Text;
FieldByName('users').AsString:=Edit1.Text;
Post;
end;
MessageBox(Self.Handle,'数据保存成功,请查看!','系统提示',mb_iconquestion);
end;
end;楼主,你要是向数据库插入数据,这样来写,省得拼SQL语句,也容易出错,这样写原因好查找
adoquery1.SQL.Add('values(:pid,:ppassword,:pname,:psex,:pbir,:pdepart,:pjob,:pedu,:pspecialty,:padd,:ptel,:pemail)'); adoquery1.SQL.Add('insert into person([id],[password],[name],sex,birthday,department,job,edu_level,specialty,address,tel,email)');
adoquery1.SQL.Add(' values(:pid,:ppassword,:pname,:psex,:pbir,:pdepart,:pjob,:pedu,:pspecialty,:padd,:ptel,:pemail)');---insert into person(id,password,name,......)values(pid,:ppassword,:pname,......)
---insert into person([id],[password],[name],......) values(pid,:ppassword,:pname,......)
看看参数及语句对不对呀
...
adoquery1.ExecSQL; adoquery1.Close;
adoquery1.Open;
...
给我的感觉好像有点不对。先执行Insert Into语句,然后关闭,再然后不改变Insert Into语句直接打开?
adoquery1.SQL.Add('values(:pid,:ppassword,:pname,:psex,:pbir,:pdepart,:pjob,:pedu,:pspecialty,:padd,:ptel,:pemail)');第二句增加sql语句时 values前面少了个空格 增加就可以了