有2个List。分别是字段名和想对应的值。怎么用循环存入数据库啊
List : TStringList //存放的是输入的各字段的值
FieldList : 表里的各个字段比如:
  List里:1.2.3
  FieldList里id.name.pass怎样把这条记录存进去啊。

解决方案 »

  1.   

    循环获得tstringlist里面数据就可以呀
      showmessage(str.Strings[0]);
      

  2.   

    可以用SQL语句。uses StrUtils;...var
      List: TStringList;       // 存放的是输入的各字段的值
      FieldList: TStringList;  // 表里的各个字段
      ADOQ: TADOQuery;
      i: Integer;
      FieldStr, ValueStr: string;
    begin
      // .
      // .
      // 这里省略若干代码,假设 List 和 FieldList 已建好且包含数据。
      // .
      // .
      // 这里省略若干代码,假设 ADOQ 已和数据库连接上。
      for i:=0 to FieldList.Count-1 do  // FieldList 同 List 的项数应一致
      begin
        FieldStr := FieldStr + FieldList.Strings[i] + ', ';
        { 假设都是字符串类型,若不是则可用case加以判断 }
        ValueStr := ValueStr + '''' + List.Strings[i] + '''' + ', ';  
      end;   
      if RightStr(FieldStr, 2) = ', ' then
        FieldStr := LeftStr(FieldStr, Length(FieldStr) - 2);
      if RightStr(ValueStr, 2) = ', ' then
        ValueStr := LeftStr(ValueStr, Length(ValueStr) - 2);
      ADOQ.SQL.Text := 'INSERT INTO Table1 (' + FieldStr + ') VALUES (' + ValueStr + ')';
      ADOQ.ExecSQL;  
    end;
      

  3.   

    var
        i:integer;
    begin
        for i:=0 to FieldList1.Count-1 do
            FieldList1.Fields[i].Value:=List1.Strings[i];
    end;
      

  4.   

    for i:=0 to list1.count-1 do 
    if field_str='' then 
       field_str:=''''+list1[i]+'='+list2[i]+''''
    else 
       field_str:=field_str+','+''''+list1[i]+'='+list[2]+'''';update table_name set field_str
      

  5.   

    var
      I:integer
    begin
      adoquery.append;
      for i:=0 to list1.count-1 do begin
         adoquery1.valis[FieldList.strings[i]]:=List.strings[i]//
      end;
      adoquery.post
    end;