我正在制作一个程序,它有一个注册页面并将数据保存到数据库。我正在尝试验证用户名,以便不会有具有相同用户名的用户。用户名也是我数据库中的主键。当我单击提交按钮时,程序可能会冻结或给我下面的内容错误消息:“带消息的异常类EOIeException”您向表请求的更改不成功,因为它们会在索引,主键或关系中创建重复值。更改包含重复数据的字段中的数据,删除索引,或重新定义索引以允许重复项,然后再试一次”搜索数据库中存在的记录问题
我使用下面的代码,如果编辑框中的文字出现在数据库中,如果它做它应该显示一个消息框。但相反,它提供了搜索我如上所述的错误。
with dmPredictGame do
while NOT tblUserInfo.EOF do
begin
tblUserInfo.First;
if Uppercase(edtUsername.Text) = tblUserInfo['Username'] then
begin
MessageDlg('The username "' + edtUsername.Text + '" already exists!', mtError, [mbOK], 0);
edtusername.SetFocus;
exit;
end
else
tblUserInfo.Next;
tblUserInfo.Close
end;
move tblUserInfo.First;之前,重新考虑你的策略 – ComputerSaysNo
如前所述,“First”语句需要在循环之前进行,否则数据集游标会在每次迭代时都返回到第一条记录。另外,为什么不只是做一个简单的查询'选择*从用户的用户名= [用户名]'? –
如果我这样做,它会给我一个错误,而不是行。错误是“未声明的标识符:'tblUserInfo'”和另一个错误在同一行代码说''做'预期,但标识符'EOF'找到“ – user931018