我想通过edit往dbgrid里面添加数据,功能是可以实现的,但是现在我想加个if语句判断下如果edit1.Text=''就提示不能添加,但是加上以后好象没有作用,即使在edit1.Text=''的情况下后面的内容还能添加上,请大家帮我看看
begin
 if edit1.Text='' then
 Messagedlg('没有数据需要添加?',mtwarning,[mbok],0)
 else
ADOquery1.open;
ADOQuery1.Append; //添加
ADOQuery1.FieldByName('xh').AsString := Edit1.Text;
ADOQuery1.FieldByName('xm').AsString := Edit2.Text;
ADOQuery1.FieldByName('bj').AsString := Edit3.Text;
ADOQuery1.FieldByName('jg').AsString := Edit4.Text;
ADOQuery1.Post;

解决方案 »

  1.   

    begin
     if edit1.Text='' then
     Messagedlg('没有数据需要添加?',mtwarning,[mbok],0)
     else
     begin
        ADOquery1.open;
        ADOQuery1.Append; //添加
        ADOQuery1.FieldByName('xh').AsString := Edit1.Text;
        ADOQuery1.FieldByName('xm').AsString := Edit2.Text;
        ADOQuery1.FieldByName('bj').AsString := Edit3.Text;
        ADOQuery1.FieldByName('jg').AsString := Edit4.Text;
        ADOQuery1.Post;
     end;
    end;
      

  2.   

    可以了,非常感谢,
    还有一个问题就是我要通过edit来改dbgrid里面的数据(点击dbgrid的某行内容,内容自动添加到edit中,然后再edit中改数据,改好后点修改,)现在我有个删除代码不会写,修改的时候怎么删除数据库中原有的那条数据.(我用的是sql库)
      

  3.   

    你需要把“对dbGrid的操作其实就是对DataSource、DataSet的操作”这一点理解。dbGrid展示给你的数据,只是DataSet中的数据而已。如果理解了这个,你完全可以不用edit了,而是用DBEdit。
    至于删除,那也不是删除dbGrid中的数据,而是删除DataSet中的数据,只不过dataset的数据改变后,你能通过DBGRID看到而已。
    以QUERY数据集为例,删除当前一行数据的代码是:query.delete;
      

  4.   

    你这样做删除吧:
    dbgrid1.DataSource.DataSet.Delete;不要被dbGrid迷惑了
      

  5.   

    这样的话它知道我要删除的是那一行的记录吗?不好意思我刚刚开始学delphi希望你不要烦
      

  6.   

    当前行。
    一般情况下,数据集游标定位在第一条记录上。然后,你可以用dbGrid、dbNavagitor等移动游标(比如在dbgrid里点击你想要删除的“那一行”。)也可以在代码里用next、first等移动游标。
      

  7.   

    如果就是要例子,网上多的是,随便搜个数据库类的小程序看一下就行了。delphi的Demos里也有