我在DBGRID中编辑数据,如果输入重复的商品编号就报错误
PS := DataSource1.DataSet;
if (DBGrid1.SelectedField.FieldName = 'goodsNO') then
begin
for i:=0 to PS.RecordCount - 1 do
begin
if (DBGrid1.SelectedField.AsString = PS.FieldByName('goodsNO').AsString) then
begin
ShowMessage('商品编号重复!请重新输入或修改该商品数量');
DBGrid1.SelectedIndex := 0;
exit;
end;
PS.Next;
end;为什么PS.RecordCount 在录入第一条数据时是1,而录入第二条记录时第一次循环是1,第二趟循环就变为2了。好象是我刚刚录入数据的原因,能告诉我怎样实现我的功能吗
既在DBGrid中输入数据进行编辑,如果数据重复就出错误!我想查找要比异常更省资源吧
PS := DataSource1.DataSet;
if (DBGrid1.SelectedField.FieldName = 'goodsNO') then
begin
for i:=0 to PS.RecordCount - 1 do
begin
if (DBGrid1.SelectedField.AsString = PS.FieldByName('goodsNO').AsString) then
begin
ShowMessage('商品编号重复!请重新输入或修改该商品数量');
DBGrid1.SelectedIndex := 0;
exit;
end;
PS.Next;
end;为什么PS.RecordCount 在录入第一条数据时是1,而录入第二条记录时第一次循环是1,第二趟循环就变为2了。好象是我刚刚录入数据的原因,能告诉我怎样实现我的功能吗
既在DBGrid中输入数据进行编辑,如果数据重复就出错误!我想查找要比异常更省资源吧
解决方案 »
- delphi中dev动态调用皮肤
- 请教一个dbgrid一列内分别统计不同类别数量的问题
- 您好,请教一下怎么将richedit里面的内容另存为.doc 不是直接打开word
- 如何在dbgrid中显示查询结果?查询是多次进行的,如:输入姓名查询,查询下一个的时候希望在dbgrid中显示已查询的记录,怎么做?急 啊
- 神啊!!!救救我吧!!关于 TCheckbox的问题?
- 那位哥们知道delphi中怎样做数据库报表?有这方面的资料吗?
- 将sql server 数据导成ACESS数据库,每月都要做。用什么方法好一点
- 保存一个工程,最少需要保存哪些后缀名的文件?
- delphi项目
- 为什么我用DELPHI编的程序在连接PARADOX数据库的时候没有问题!但当把PARADOX数据库转成SQLSERVER数据库时,程序就不能运行?
- 有什么好办法能实时检查sql server表中有新数据插入?
- 求一光盘解密工具,急用..............
商品编号可以程序自动给,不让重复。
一起POST,
那你可以这样试试:
var
s;string;
begin
PS := DataSource1.DataSet
s:=PS.FieldByName('goodsNO').AsString;
if (DBGrid1.SelectedField.FieldName = 'goodsNO') then
begin
if ps.RecordCount>1 then//如果新添加一条记录,就不用比较,如果要与数据库已存在数据进行比较,则另外处理
begin
first;
for i:=0 to PS.RecordCount - 2 do
begin
if PS.FieldByName('goodsNO').AsString= s then
begin
ShowMessage('商品编号重复!请重新输入或修改该商品数量');
DBGrid1.SelectedIndex := 0;
exit;
end;
PS.Next;
end;
end;
end;
end;以上未经测试
一起POST,
那你可以这样试试:
var
s;string;
begin
PS := DataSource1.DataSet
s:=PS.FieldByName('goodsNO').AsString;
if (DBGrid1.SelectedField.FieldName = 'goodsNO') then
begin
if ps.RecordCount>1 then//如果新添加一条记录,就不用比较,如果要与数据库已存在数据进行比较,则另外处理
begin
first;
for i:=0 to PS.RecordCount - 2 do
begin
if PS.FieldByName('goodsNO').AsString= s then
begin
ShowMessage('商品编号重复!请重新输入或修改该商品数量');
DBGrid1.SelectedIndex := 0;
exit;
end;
PS.Next;
end;
end;
end;以上未经测试