DBGrid显示 Student 这张表的记录DBGrid显示分两类:
1. 学号字段为空的    SELECT * FROM STUDENT WHERE 学号 IS NULL
2. 姓名字段为空的    SELECT * FROM STUDENT WHERE 姓名 IS NULL
现在,我们选中一条记录,将学号填充进(是用SQL),这时要求DBGrid刷新出来,但记录位置不能变这里就有个问题该记录填充学号后,SELECT * FROM STUDENT WHERE 学号 IS NULL 这句就显示不出该记录了,也就是刷新不出来了
不知大家有没明白我的意思谢谢大家

解决方案 »

  1.   

    DBGrid显示分两类:
    1. 学号字段为空的    SELECT * FROM STUDENT WHERE 学号 IS NULL
    2. 姓名字段为空的    SELECT * FROM STUDENT WHERE 姓名 IS NULL你是怎么在一个DBGrid中同时显示出两个查询的结果的? 用Union?
      

  2.   

    楼上的,就是这个意思就是说有没有办法直接在 DBGrid 上修改掉,目的是让用户看到记录已经修改掉了
      

  3.   

    楼主的意思是不是要把刚加进学号(或姓名)的那条记录仍然显示在原来查询出来的学号(或姓名)为空的查询结果里??
    如果在你填入学号(或姓名)的时候把该条记录记下来,在重新刷新前动态修改查询语句行不行?比如SELECT * FROM STUDENT WHERE 学号 IS NULL OR 学号=(你修改的值) 等你认为不需要再让用记看到修改过的记录时再把sql语句改回原来的
      

  4.   

    SELECT * FROM STUDENT WHERE 学号 IS NULL OR 学号=(你修改的值) 
    -------------------------------要是这样做的话,那重新刷新后,记录的位置会变化,比如原来在第10行的会变到第N行去能不能做到记录的位置保持不变的
      

  5.   

    用SQL语句更新完姓名或都学号后,SQL执行成功时,直接修改DataSet,即在DBGrid绑定数据集相应的条目。如果是ADO时设 LockType=ltBatchOptimistic