代码可以判断是否是已存在用户 如果是 则提示 !如果不是 则添加此用户 可是部能把数据保存到数据库?为什么?下面是代码!procedure Tuseradd.BitBtn1Click(Sender: TObject);
var
 username:string;
begin
  if edit1.Text='' then
    showmessage('用户名不能为空,请输入!')
  else
    begin
      username:=edit1.Text ;
      with datamodule1.userquery  do
        begin
         close;
         sql.clear;
         sql.Text:='select* from user where username= '''+username+'''';
         open;
         while not eof do
          if edit1.Text=Fieldbyname('username').asstring then
           begin
            showmessage('此用户已存在,请重新输入');
            edit1.Clear;
            edit1.SetFocus ;
            exit;
           end
          else
           begin
            open;
            showmessage('tianjia');
            
            Append;
            //Fieldbyname('Userid').asstring :='004';
            Fieldbyname('username').asstring:=edit1.text;
            Fieldbyname('userpwd').asstring:=edit2.text;
           // Fieldbyname('Admin' ).asstring:='1';
            post;
            //Refresh;
          end;
        end;
      end;
end;

解决方案 »

  1.   

    哦!你最好在你的while语句下边加个begin ...end我想你应该知道加到哪里!
    并且你没有Next啊!这样怎么循环?在if edit1.Text=Fieldbyname('username').asstring then 的外层加个next;你再看看效果!
      

  2.   

    其实我搞不懂,你要判断表中某个字段是否等于EDIT.TEXT为什么要用循环,为什么不用函数LOOKUP,ADO用LOCATE多好!!!
      

  3.   

    晕,既是用TQUERY,为什么不用SQL实现?偏要用TTABLE的什么APPEND、POST方法。