DBGrid组件单元格为什么不能编辑,不能录入任何内容?其Options\dgEditing为True;ReadOnly也为True.

解决方案 »

  1.   

    ReadOnly是只读的意思……
    自然不能编辑了
    把ReadOnly改成False看看
      

  2.   

    我刚才试过了,ReadOnly改成False也试过了不行,但要连接了数据库才可以有编辑.想问一下:是不是只有在连接数据库状态下才能编辑DBGrid单元格的内容?
      

  3.   

    还有一个问题,为什么连接数据库后,在DBGrid单元格录入数据就直接写回到数据里去了?
    能不能允许在DBGrid单元格录入任何信息不写回数据库,而通过一个按钮检查数据的合法性,再执行相应的插入、修改、更新等操作?
      

  4.   

    DBGrid.DataSource.DataSet.BeforePost可以用来检查
    另外录入数据必须要写入数据库
      

  5.   

    不知道你是用的什么控件存取数据的。如果用的是adoquery。可以把cursortype设为:ctKeyset,把locktype设为:ltBatchOptimistic。这样你改了数据后,它就不会自动更新回数据库了。只有执行了adoquery.updatebatch后才更新数据库
      

  6.   

    感谢xiangzi15,另外想请问下:按照你的方法虽然可以编辑,但总会把数据库里原有的数据显示出来,有没有办法不显示数据库原来的信息?
      

  7.   

    我想通过一个按钮,将录入到DBGrid的信息添加到SQL数据库中,应该如何写代码?
      

  8.   

    with ADOQuery do
    begin
      close;
      sql.clear;
      sql.add('INSERT INTO table (a,b,c)');
      ExecSql;
    end;或者使用数据感知控件
      

  9.   

    select 字段1,... from biao where 1=0
      

  10.   


    select 字段1,... from 表 where 1=0
      

  11.   

    Dbgrid是数据感知控件,如果不想显示数据,我想只有用别的控件了。
    关于“将录入到DBGrid的信息添加到SQL数据库中”
    在按钮的Onclick事件中:adoquery.updateBatch;就可以把所做的更改更新回数据库了。
      

  12.   

    界面上有Edit组件,有DBGrid组件.DBGrid有多条记录,而Edit需要对应DBGrid的每条
    如果DBGrid有三条记录,请问如何将这三条记录写入SQL数据库中,且每条记录需对应加入Edit的值?
      

  13.   

    不显示数据库原来的信息.你就把数据集Append,追加一条空白,要执行别的操作的时候CancelUpdates后再执行.DBGrid组件单元格要编辑数据集要在Append或者Edit等状态下才能操作.
      

  14.   

    想请问一下大家,如果程序界面这样设计该如何处理?
    1、界面上半部分主要是几个Edit组件;
    2、界面下半部分主要是一个DBGrid样式的组件,允许多行记录,且每行记录第一列、第二列的值赋值分别等于上半部分Edit1,Edit2的值,第三列自动从0001,0002,……递增(条件是第四列有值时,第一列、第二列、第三列才按前述的进行赋值);
    3、通过点击一个按钮才将界面的所有数据写入SQL数据库中(界面下部分是多行数据,最好上部分写入SQL一个表,下部分内容写入SQL另一个表/如果能实现同样的效果,省去下部分第一列、第二列则更好);如果能解决这个问题,可以最大限度的加分哟!
      

  15.   

    建议不要用edit,用dbedit,这个控件在adoquery打开后,自动显示相对应字段的值。
      

  16.   


    感谢xiangzi15,问题已解决了!