我用ADOqry连接数据库,用DBgrid显示,现在我想在DBgrid中进行数据录入,在我未按“确定”按钮时网格中的数据不写入数据库,我该怎么设置?
“确定”按钮的内容用与将数据正式写入数据库,内容怎么写?
另外一个“添加”按钮用于在网格中添加一个空行,内容该怎么写?
“删除”按钮用于删除网格中的某一行(网格内容还没有写入数据库),按钮内容该怎么写?

解决方案 »

  1.   

    把  DATASET组件的 设置 为 AutoEdit,在在按钮中写,Post;
    就可以了
      

  2.   

    确定按钮写
    ADOqry.post
    添加按钮写
    ADOqry.append
    删除按钮写
    ADOqry.delete
      

  3.   

    建议你不用DBGrid了,还是直接用StringGrid来的好。你可以对StringGrid中的数据进行操作控制,在确定时,可以通过循环把刚才动过的数据或是Update或是Append或是Delete到数据库中,方法就是StringGrid.Cell[i, j]中的数据复制到你query的Field中去。
    然后在其他各种操作都是对StringGrid中的Cell进行,不必和数据库打交道,所以你想怎么来就怎么来了,只在确定的时候向数据库提交一次不就好了。关键就是你要做一个数据结构来记住你对StringGrid中的数据干了什么。
      

  4.   

    DBGRID实现这样的功能很麻烦,最好改用第三方控件.如:Express的DBGRID
      

  5.   

    谢谢各位!
    to : aotz(红叶骑士) ( ) 信誉:100 
     用StringGrid可能比较烦,用DBGrid好象应该可以的,望高手指教!
      

  6.   

    我想在DBgrid中进行数据录入,在我未按“确定”按钮时网格中的数据不写入数据库
    可以做到这样吗?
      

  7.   

    可以用post方法或者干脆刷新一下试试看
      

  8.   

    post或者刷新就会写入数据库的
      

  9.   

    正常情况下,在DBgrid中进行数据录入时当光标移到下一格时,上一格的内容就会写入数据,我要最后一次性用按钮控制写入,该怎么做呢?高手帮忙!!!
      

  10.   

    用AdoConnect的事务功能可以做到
      

  11.   

    首先在DBGrid的OnKeyDown事件上加上:
    procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if (key = 40) or (key = 38) then
        Abort;
    end;
    然后,
    在确定按钮中加上
      ADOqry.post
    在添加按钮中加上
      ADOqry.insert;
    在删除按钮中加上
      ADOqry.delete
      

  12.   

    按确定的时候ADOConnection.CommitTrans,否则回滚事务
      

  13.   

    bluemeteor(挂月||╭∩╮(︶︿︶)╭∩╮) 说的挺清楚得了
      

  14.   

    bluemeteor(挂月||╭∩╮(︶︿︶)╭∩╮) 说的挺清楚得了
      

  15.   

    在网格中输入数据,当网格滚动时数据会写入数据库,我想在按了“确定”按钮后才正式写入数据库,就象财务软件的凭证录入界面一样,用DBgrid难道做不到吗?