注入程序进程后,获取到了DBGRID  code:   vWinControl := FindControl(g_hWin);
   for I := 0 to vWinControl.ComponentCount - 1 do
    begin
       if SameText(vWinControl.Components[I].ClassName, 'TDBGridE') then
        begin
          DBGRID := TDBGrid(vWinControl.Components[I]);
          Break;
        end; 
    end;
后面 DataSet := DBGRID.DataSource.DataSet;
   for i:=1 to 10 do
          begin
            DataSet.Insert;
            dataset.Fields[7].AsString:=ExcelApp.Cells[ih,1].Value;
            dataset.Fields[8].AsString:=ExcelApp.Cells[ih,2].Value;
            dataset.Fields[9].AsString:=ExcelApp.Cells[ih,3].Value;
            dataset.Fields[10].AsString:=ExcelApp.Cells[ih,4].Value;
            dataset.Fields[11].AsString:=ExcelApp.Cells[ih,5].Value;
            dataset.Fields[12].AsString:=ExcelApp.Cells[ih,6].Value;
            dataset.Fields[4].AsString:=ExcelApp.Cells[ih,7].Value;
            DataSet.Post;  
          end;第一条导入OK,第二条导入后发现DBGRID里2条数据内容一模一样
不管加不加dataset.next;showmessage(inttostr(dataset.recordcount));内容=1最后一个难关了。研究了N天了。就差这个了。求HELP
dataset的字段有18个。我用程序自己添加数据,然后获取这18个字段的数值跟导入一条获取的数据,18个字段是一样的。
问题会出在哪里呢。。

解决方案 »

  1.   


    不好意思,这个ih是我打错。实际上这是没问题的。
    不是这个原因。代码里是ih。这里的没修改
      

  2.   

    这里看不出问题,可以这样测试,先不从Excel取数,只是连续添加一些简单的数据,看看结果如何   for i:=1 to 10 do
              begin
                DataSet.Insert;
                dataset.Fields[7].AsString:=inttostr(i);
                DataSet.Post;  
              end;
      

  3.   

    .
    是TDBGRIDE,应该是DBGRID强化版吧。不过dataset应该没区别是不是我DATASET用的不对
      

  4.   

    把你的excel表数据贴出来,数据是不是放在第一个sheet1中。
      

  5.   

    哎,不是这个问题。跟excel没关