我想利用DBGRID来输入数据,并在第一列作为行号,其中其他列有些值是自动取得的,不希望用户修改,请问怎样实行,第一列作为行号(用代码实现),个别列不允许用户输入,以及在离开时自动保存数据。请大家帮忙!

解决方案 »

  1.   

    行号可以在数据库里设置成自增的不用写代码了
    个别列不允许修改可以用静态列设置readonly属性,
    用代码可以dbgrid.columns[i].readonly:=true;//i表示你要的列号
    dbgirid本来就是在焦点离开时自动保存的
      

  2.   

    对,不过rockswj(石头) 兄说的是自动POST,你如果要UPDATE的话自己在dbgrid的ONEXIT事件中写UPDATE就可以了。
      

  3.   

    当ADOQuery的LockType属性为ltPessimistic时,相对应的DBGrid在焦点转移时会自动保存,LockType的属性为ltBatchOptimistic时,相对应的DBGrid在焦点转移时不会自动保存,只有调用了ADOQuery的UpdateBatch方法后才会提交到数据库的。
      

  4.   

    我就是不想用数据库的ID作为行号,我就是要DBGRID里的行号!