我想DBEdit想数据库中加数据,若有与以前重复的数据则弹出这样的错误“已有重复记录”然后返回。代码我已经写好,但是点击新增时,修改的总是数据库中存在的数据,这段代码怎么改好?
      if( DBEdit1->Text.IsEmpty())
  {
    Application->MessageBox("采面名称不能为空!", "优耐电子", MB_OK +
        MB_ICONINFORMATION);
        return;
    }
          if( DBEdit2->Text.IsEmpty())
  {
    Application->MessageBox("分机号不能为空!", "information", MB_OK +
        MB_ICONINFORMATION);
        return;
    }
          if( DBEdit3->Text.IsEmpty())
  {
    Application->MessageBox("支架号不能为空!", "information", MB_OK +
        MB_ICONINFORMATION);
        return;
    }
          if( DBComboBox1->Text.IsEmpty())
  {
    Application->MessageBox("位置不能为空!", "information", MB_OK +
        MB_ICONINFORMATION);
        return;
    }
    if( ADOTable2->FieldByName("采面名称")->AsString== DBEdit1->Text&&ADOTable2->FieldByName("分机号")->AsString==DBEdit2->Text&&ADOTable2->FieldByName("支架号")->AsString==DBEdit3->Text&&ADOTable2->FieldByName("位置")->AsString==DBComboBox1->Text)
    {
      Application->MessageBox("该设置已存在!请重新设置", "information", MB_OK +
          MB_ICONINFORMATION);
          ADOTable2->Next();
        return;
      }
  ADOTable2->Append();

}

不要用這個寫法
這個功能在insert數據庫之前先做select
select * from table where xx = '+DBEdit1->Text+' and yy = '+DBEdit2->Text+' ….
然後去判斷select出來的結果集裏有沒有數據
如果沒有做insert
如果有提示已經存在

楼上的正解
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from table where xx = '+DBEdit1->Text+' and yy = '+DBEdit2->Text+' …. ");
ADOQuery1->Open();
if(ADOQuery1->RecordCount>0)
    {
    MessageBox(this->Handle,"该设置已存在!请重新设置","提示",MB_OK);
    return;
    }

有这样的错误怎么改?“将varchar值‘+DBEdit2->Text+'转化为数据类型为int的列时发生语法错误

引用 4 楼 springworker 的回复:
有这样的错误怎么改?“将varchar值‘+DBEdit2->Text+'转化为数据类型为int的列时发生语法错误

没看懂
有字符不能转整型吧

‘+DBEdit2->Text.ToInt()+'
或者先
try
{
DBEdit2->Text.ToInt();
}
catch(…)
{
//异常处理
}

要看字段的類型
varchar等等用 '"+dbedit->text+"'
int用 "+dbedit->text+"

ADOTable2->FieldByName("分机号")->AsInteger=DBEdit2->Text.ToInt();

还有个问题
我设了2个控件
一个增加  一个提交
在增加里的代码是ADOTable2->Append();
在提交的代码就是判断了

但是一运行是点击增加,然后我想向 DBEdit控件中写入的时候
DBEdit又出现数据库里的数据
只有再点击增加按钮后才不出现上面的那种情况
这是什么问题?

你是不是绑定了DBEdit啊,就用个Edit算了,要不你把两个代码贴出来,看看

對數据庫的操作就老老實實的寫法算了
用幾個Edit
在insert之前先做select去判斷有沒有重復
如果有就return掉
沒有就執行
不要用數據源去綁控件