procedure TForm2.Button3Click(Sender: TObject);
var
adoconn:TADOConnection;
adoquerytmp:TADOQuery;
//dataset:TDataSet;begin
      ADOConn:=TADOConnection.Create(Self);
      ADOQueryTmp   :=   TADOQuery.Create(Self);
      //dataset:=TDataSet.Create(self);
          ADOConn.ConnectionString   :='Provider=SQLOLEDB.1;User ID=zjh;database=rdwhdata2005;server=zjh\data2000;password=321321';
          ADOConn.Connected   :=true;          with AdoQueryTmp do
          begin
          sql.Add('Select   *   from   inventory');
          DBGrid1.DataSource=adoquerytmp ;
          ADOQueryTmp.Free;
          end;
end;

解决方案 »

  1.   

    ADOQueryTmp.Connection := ADOConn; ADOQuery 与ADOConnection关联起来
    另外应该还需要一个dataSOurce控件吧?
    DSTmp := TDataSource.create(nil);
    DSTmp.DataSet := ADOQueryTmp;DataSource 与DataSource关联起来
    DBGRid1.DataSource := DSTmp; DataSource与DBGrid关联起来,要是语句没有错误的话,应该可以显示的
      

  2.   

    ADOQueryTmp.Connection := ADOConn; ADOQuery 与ADOConnection关联起来 
    另外应该还需要一个dataSOurce控件吧? 
    DSTmp := TDataSource.create(nil); 
    DSTmp.DataSet := ADOQueryTmp;DataSource 与ADOQuery关联起来 
    DBGRid1.DataSource := DSTmp; DataSource与DBGrid关联起来,要是语句没有错误的话,应该可以显示的
      

  3.   

              with AdoQueryTmp do
              begin
              sql.Add('Select   *   from   inventory');
              DBGrid1.DataSource=adoquerytmp ;
              ADOQueryTmp.Free;
              end;
    //数据是保存在ADOQueryTmp的,可以将ADOQueryTmp.Free掉吗?
      

  4.   

    dbgrid<---datasource<----dataset(ADOQueryTmp)必须ADOQueryTmp打开着,dbgrid才能有记录
    free是更加不能的了