我想通过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;
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;
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;
还有一个问题就是我要通过edit来改dbgrid里面的数据(点击dbgrid的某行内容,内容自动添加到edit中,然后再edit中改数据,改好后点修改,)现在我有个删除代码不会写,修改的时候怎么删除数据库中原有的那条数据.(我用的是sql库)
至于删除,那也不是删除dbGrid中的数据,而是删除DataSet中的数据,只不过dataset的数据改变后,你能通过DBGRID看到而已。
以QUERY数据集为例,删除当前一行数据的代码是:query.delete;
dbgrid1.DataSource.DataSet.Delete;不要被dbGrid迷惑了
一般情况下,数据集游标定位在第一条记录上。然后,你可以用dbGrid、dbNavagitor等移动游标(比如在dbgrid里点击你想要删除的“那一行”。)也可以在代码里用next、first等移动游标。