如何判斷某一個數據在第幾行,如在EDIT中輸入一個數據,如何指到這一行,並讓這一行在第一行顯示,後面的數據還是要顯示的

解决方案 »

  1.   

    你所说的在EDIT里输入的值应该是某个字段的一个值吧?
    如果是的话可以用 locate定位到你想要的地方,然后把其他字段的值都取出来
    locate在 DBGrid1.DataSource.DataSet.Locate()或query1.Locate()
      

  2.   

    数据在第几行:
       aa :=  Adoqeury1.Recno;
    方法:
       //将定位的数据打个标志不显示。
       读出第一条到变量中。 
       读出找到的数据到第二变量中。
       下面举个简单例子;
       Adoquery1.open;
       第一条数据:myno,mytxt;
        myno := FieldByName('xx_id').asString;
       mytxt := FieldByName('XX_name').Asstring;
       定位第n行数据读出:
        myno_n := FieldByName('xx_id').asString;
       mytxt_n := FieldByName('XX_name').Asstring;
       更新吧:
       Edit;
       第一条换成第n行:
       FieldByName('xx_id').asString := myno_n;
       FieldByName('XX_name').Asstring := mytxt_n;
       post;
       更新第n行到第一行:
       FieldByName('xx_id').asString := myno;
       FieldByName('XX_name').Asstring := mytxt;
       post;
       Adoquery1.Close;
       ADOquery1.Open;
    --最好写SQL 语句更新。
      

  3.   

    只是為了顯示,不必更新,在edit中輸入數據之後,在第一行顯示,第二,第三..顯示其它的,比如說edit輸入的數據是第4行字段的值,1,2,3行的數據就不顯示,4行以後的一樣顯示,不需要更新數據庫。
      

  4.   

    用先用locate取出edit数据所在表中的位置,得到该条数据的keyno号,然后用query执行sql select * from table where keyno>得到的keyno
      

  5.   

    楼上的不行,人家是要定位到这条记录,但要在grid的第一行显示. 但又要显示其他的数据.好像没有什么好方法.