用5个Edit控件来输入一些内容,怎样把他们写到一张表中?对应5个字段!但是有些字段是可以为空的。怎么做?

解决方案 »

  1.   

    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add('insert into mytable(col1,col2,col3,col4,col5) values(:a,:b,:c,:d,:e)');
    adoquery1.parameters.parambyname('a').value=edit1.text;
    adoquery1.parameters.parambyname('b').value=edit2.text;
    adoquery1.parameters.parambyname('c').value=edit3.text;
    adoquery1.parameters.parambyname('d').value=edit4.text;
    adoquery1.parameters.parambyname('e').value=edit5.text;
    adoquery1.execsql;
      

  2.   

    可以这样做:
    先根据数据库中字段的名称命名Eidt控件,命名规则为:Edit+'_'+字段名称;
    然后写提交数据函数:
    procedure Postvalues(ty:integer);
    var
      i:integer;
    begin
      with Query_Modify do
      begin
        AfterScroll:=nil;
        if ty=0 then
          Append
        else
          Edit;
        try
          for i:=0 to Self.ComponentCount-1 do
          begin
            if Self.Components[i].ClassType=TEdit then
            begin
              if UpperCase(Copy(Self.Components[i].Name,1,5))='Edit_' then
              begin
                FieldByName(Copy(Self.Components[i].Name,6,Length(Self.Components[i].Name)-5).AsString:=TEdit(Self.Components[i]).Text;
              end; 
            end;
          end;
          Post;
        finally
           AfterScroll:=Query_ModifyAfterScroll;
        end;
      end;
    end;
      

  3.   

    to hhytsoft(雨中独行) 您的方法结果提示:不正常的定义参数对象,提供了不一致或不完整的信息。
      

  4.   

    看一下参数是否匹配.如仍有问题,请在设计期定义SQL,并对参数进行逐一检查,类型是否匹配。
    adoquery1.parameters.parambyname('e').value=edit5.text;
    其中的=打错了应该为:=,Sorry