procedure TForm1.B_appeClick(Sender: TObject);
begin
    With Add_Q do
      begin
        Close;
        SQL.Clear;
        SQL.Add('Select * From User_pass');
        SQL.Add('Where User_pass.ID="'+lid.Text+'"');
        Execsql;
        // User_Table1.Refresh;
      end;
      With User_Table1 do
         begin
           Open;
           Refresh;
         end;我用的是DBGRID控件。但是我用了 SQL.Add('Select * From User_pass');
                              SQL.Add('Where User_pass.ID="'+lid.Text+'"');
但是在DBGRID里面没动静。按我想的来说,应该过滤出満足lid.Text里的内容呀!
数据指针应该要指到満足Lib.Text的内容上呀!
可是就是没变呀。好像什么也没执行一样(还是指向第一条记录)。
我要怎么做?才能満足lid.Text里的内容显示在DBGRID里呀?
请各位帮助一下OK?

解决方案 »

  1.   

    你的用发是错的User_Table1和Add_Q 根本没联系
    你应该用User_Table1.locate(...)来定位纪录
      

  2.   

    将Execsql改为open
    将DBGRID连上Add_Q 
    SQL.Add('Where User_pass.ID="'+lid.Text+'"')好这样写好点:
    SQL.Add('Where User_pass.ID='+''''+lid.Text+'''');
    当然最好用参数!!!
      

  3.   

    改为
    SQL.Add('Where User_pass.ID='''+lid.Text+'''');
    试一下,有些dbms双引号会编译为字段
      

  4.   

    SQL.Add('Select * From User_pass');
    SQL.Add('Where User_pass.ID='''+lid.Text+'''');
      

  5.   

    With Add_Q do
          begin
            Close;
            SQL.Clear;
            SQL.Add('Select * From User_pass');
            SQL.Add('Where User_pass.ID="'+lid.Text+'"');
            Execsql;<<<<<<<-------老大这里改成open;
            // User_Table1.Refresh;
          end;
          With User_Table1 do
             begin
               Open;
               Refresh;
             end;