程序能将access中的内容读出到stringgrid中,但是修改后保存就出现问题了,老是搞不好,请指教。要给出具体的代码(就是不会写代码)。谢谢!是否要使用SQL语句?

解决方案 »

  1.   

    直接用DBGRID岂不更好~~为什么用stringgrid?
      

  2.   

    循环STRINGGRID的行,一条一条的修改
      

  3.   

    我的项目是这样的:界面通过MODBUSTCP与下位机通讯,轮询读取9999个参数(设计量,现在5200)。如果用DBGRID,直接使用数据库存取,将是程序无法工作--我们试了一下,总是读写数据库,将使程序运行很慢。所以想采用一个中间文本,程序将通讯数据保存到stringgrid中,当点击保存才保存到数据库中。大家认为怎么样,有好的别的办法不?(通讯内容要看的到)。也请回答我的主题,谢谢!
      

  4.   

    就是for循环控制StringGrid1.Cells
      

  5.   

    用adotable连接上了,但是老是提示数据库是关闭的:不能操作一个关闭的数据库。
      

  6.   

    下面是我做的 你改下!
    var
    i:integer;
    begin       ADOConnection2.Connected:=false;
           adoconnection2.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFilePath(Application.ExeName)+'whacko01.mdb;Persist Security Info=False';
            ADOConnection2.Connected:=true;
           adoquery2.Close;
           adoquery2.SQL.Clear;
           adoquery2.SQL.Add('select *   from andianbaobiao where left(lsrq,8)='''+flatedit1.Text+'''  ');
           //adoquery2.ExecSQL;
          adoquery2.Open ;
          if adoquery2.RecordCount =0 then
          begin           for   i   :=   1   to   strtoint(flatedit2.Text)   do
            begin
                try
                  begin
                      ADOquery2.append;
                      ADOquery2.FieldByName('lsrq').Value :=stringgrid1.Cells [0,i];
                      ADOquery2.FieldByName('mdbh').AsString:=stringgrid1.Cells [1,i];
                      ADOquery2.FieldByName('jnsjdrxs').AsString:=stringgrid1.Cells [2,i];
                      ADOquery2.FieldByName('jnlksdr').AsString:=stringgrid1.Cells [3,i];
                      ADOquery2.FieldByName('jnsjyljxs').AsString:=stringgrid1.Cells [4,i];
                      ADOquery2.FieldByName('jnlksylj').AsString:=stringgrid1.Cells [5,i];
                      ADOquery2.FieldByName('snsjdrxs').AsString:=stringgrid1.Cells [6,i];
                      ADOquery2.FieldByName('snlksdr').AsString:=stringgrid1.Cells [7,i];
                      ADOquery2.FieldByName('snsjyljxs').AsString:=stringgrid1.Cells [8,i];
                      ADOquery2.FieldByName('snlksylj').AsString:=stringgrid1.Cells [9,i];
                      ADOquery2.Post;
                     // adoquery2.Refresh ;
                  end;          except
                 begin
                  showmessage('数据更新错误');
                  end;
              end;      end;            // adoconnection1.Destroy;
         // ADOquery2.Connection.Cancel  ;
           //adoconnection2.ConnectionString:='';
           ADOConnection1.Connected:=false;
           adoquery2.Close;
             showmessage('数据收取完成');
           end
           else
           begin
           showmessage('输入日期数据本地已经下载');
           end;
       FlatButton1.Enabled :=false;   
       end;