在学做一个欠帐管理系统的时候,向数据库中添加数据总是不成功,部分代码如下,请帮 
忙看一下是否正确 procedure TNewForm.BitBtn1Click(Sender: TObject); 
begin 
  with table1 do 
  begin 
    if RadioButton1.Checked then 
      begin 
        Append; 
        FieldByName('欠款人').AsString:=ComboBox1.Text; 
        FieldByName('欠帐金额(元)').AsString:=Edit2.Text; 
        FieldbyName('欠帐类型').AsString:=ComboBox2.Text; 
        FieldByName('欠帐时间').AsDateTime:=DateTimePicker1.Date; 
        FieldByName('备注').AsString:=Memo1.Text; 
        Post; 
      end 
    else 
      FieldByName('欠款人').AsString:=Edit1.Text; 
  end; 

解决方案 »

  1.   

    procedure TNewForm.BitBtn1Click(Sender: TObject); 
    begin 
      with table1 do 
      begin 
        if RadioButton1.Checked then 
          begin 
    Active:=false;//这里加上数据表的状态。
    Active:=true;
            Append; 
            FieldByName('欠款人').AsString:=ComboBox1.Text; //这里的字段名最好使用英文字母。
            FieldByName('欠帐金额(元)').AsString:=Edit2.Text; 
            FieldbyName('欠帐类型').AsString:=ComboBox2.Text; 
            FieldByName('欠帐时间').AsDateTime:=DateTimePicker1.Date; 
            FieldByName('备注').AsString:=Memo1.Text; 
            Post; 
          end 
        else 
          FieldByName('欠款人').AsString:=Edit1.Text; 
      end;
      

  2.   

    还有...你else后得指明状态才能赋值啊...难道不会报错?...else 
    beign
      if not (State in [dsEdit]) then
        Edit;
      FieldByName('欠款人').AsString:=Edit1.Text;
      post; 
    end;
      

  3.   

    同意楼上!
    **** 深圳的DELPHI爱好者聚会通知! ****详情请看:
    http://www.delphibbs.com/delphibbs/dispq.asp?LID=1619353
      

  4.   

    修正后的代码如下,运行后添加数据就死机
    procedure TNewForm.BitBtn1Click(Sender: TObject);
    begin
      with table1 do
      begin
        if RadioButton1.Checked then
          begin
            Active:=false;
            Active:=true;
            Append;
            FieldByName('欠款人').AsString:=ComboBox1.Text;
            FieldByName('欠帐金额(元)').AsString:=Edit2.Text;
            FieldbyName('欠帐类型').AsString:=ComboBox2.Text;
            FieldByName('欠帐时间').AsDateTime:=DateTimePicker1.Date;
            FieldByName('备注').AsString:=Memo1.Text;
          end
        else
          begin
            if not (State in [dsEdit]) then
              Edit;
            FieldByName('欠款人').AsString:=Edit1.Text;
            post;
          end;  
      end;end;end.