var
   par:Tlistitem;
   addstr,SQLStr:String;
begin
   with ADOQuery do
      if ADOQuery.RowCount<>0 then
        begin
            inc(i_no);
            par:=ViewSell.Items.Add; //Viewsell是listview控件
            par.Caption:=IntToStr(i_no);
            par.SubItems.Add(Fieldbyname('商品代码').AsString);
            par.SubItems.Add(Fieldbyname('名称').AsString);
            par.SubItems.Add(Fieldbyname('基本单位').AsString);
            par.SubItems.Add(Fieldbyname('名称').AsString);
        end
        else
        begin
            Application.MessageBox('没有该类商品','错误',MB_OK+MB_ICONERROR);
            Edit_code.Text:='';
        end;
    end;
end;
//这里我实现了,从一个“商品”库里找出符合条件的记录写到listview里面
我想按提交,将listview里的这些信息写到“记录”库里面
我该怎么做?

解决方案 »

  1.   

    这样啊:
    with ADOQuery1 do
    begin
      Append;
      Fieldbyname('商品代码').AsString:=ListView1.Selected.SubItems.Strings[0];
      Fieldbyname('名称').AsString:=ListView1.Selected.SubItems.Strings[1];
      Fieldbyname('基本单位').AsString:=ListView1.Selected.SubItems.Strings[2];
      Fieldbyname('名称').AsString:=ListView1.Selected.SubItems.Strings[3];
      Post;
    end;
    注意:
    第一列:ListView1.Selected.Caption;
    第二列:ListView1.Selected.SubItems.Strings[0];
    第三列:ListView1.Selected.SubItems.Strings[1];
      

  2.   

    谢谢提点,哈哈,我的最终写法,请大家点评
    var
    i:Integer;
    begin
    with ADOQuery1 do
    begin
        for i:=0 To listview1.Items.Count - 1  do
            begin
                Close;
                SQL.Clear;
                SQL.Add.(
                FORMAT('INSERT INTO TABEL1(商品代码,名称,基本单位 ,名称)'+
                ' VALUES(''%S'',''%S'',''%S'',''%S'')',
                [listview1.Items.Item[i].SubItems.Strings[0],//listview1的首列数据是个编号,没有实际意义!直接从第二列开始
                listview1.Items.Item[i].SubItems.Strings[1],
                listview1.Items.Item[i].SubItems.Strings[2],
                listview1.Items.Item[i].SubItems.Strings[3]])
                );
                ExecSQl;
            end;
        end;
    listview1.Clear;
    end;
      

  3.   

    with ADOQuery1 do
    begin
      Append;
      Fieldbyname('商品代码').AsString:=ListView1.Selected.SubItems.Strings[0];
      Fieldbyname('名称').AsString:=ListView1.Selected.SubItems.Strings[1];
      Fieldbyname('基本单位').AsString:=ListView1.Selected.SubItems.Strings[2];
      Fieldbyname('名称').AsString:=ListView1.Selected.SubItems.Strings[3];
        SQL.Clear;
                SQL.Add.(
                FORMAT('INSERT INTO TABEL1(商品代码,名称,基本单位 ,名称)'+
                ' VALUES(''%S'',''%S'',''%S'',''%S'')',
                [listview1.Items.Item[i].SubItems.Strings[0],//listview1的首列数据是个编号,没有实际意义!直接从第二列开始
                listview1.Items.Item[i].SubItems.Strings[1],
                listview1.Items.Item[i].SubItems.Strings[2],
                listview1.Items.Item[i].SubItems.Strings[3Post;
    end;
      

  4.   

    goldencity(响马):瞎混啊?这算什么写法?