首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

认真看一下,还有点难度的有关问题

2012-02-22 
认真看一下,还有点难度的问题!求在DataSet录入时,(添加或者修改的情况下),如何判断指定字段不能重复存在于

认真看一下,还有点难度的问题!
求在DataSet录入时,(添加或者修改的情况下),如何判断指定字段不能重复存在于数据集中!!!

[解决办法]
在获取添加或修改后的新值后, 另外做个查询来判断该值是否已经出现在数据表中。
[解决办法]
1, 在指定字段上加唯一索引,然后截获系统的报错;
2,post前先用另外一个dataset检查。
[解决办法]
我是用List实现的,在SetText的事件中,加以判断。
[解决办法]
使用Query的Find方法,先找一下,如果没有则添加
[解决办法]
你得另外做个查询, 当前的DataSet并不包括其他客户端在这个DataSet打开之后进行的修改,在当前的DataSet中查询是会有问题的。
[解决办法]
Adoquery1.Close;
Adoquery1.SQL.Clear;
Adoquery1.SQL.Add( 'select * from Master_table where master_name= ' ' '+yhedit.Text+ ' ' ' ');
Adoquery1.Open;
if not Adoquery1.Eof then
begin
showmessage( '已经有此登陆帐户!请确认! ');
end;
[解决办法]
字段设置唯一索引,保存前检查数据库是否存在此记录,如果存在给出提示,不存在则保存数据。
以下为保存前的检查语句
with adoquery1 do
begin
close;
sql.clear;
sql.add( 'select 你的字段 from A where 你的字段= '+ ' ' ' '+trim(edit1.text)+ ' ' ' ');
//edit控件为参考,你用什么就写什么,比如dbedit
open;
end;
if adoquery1.RecordCount <> 0 then
begin
showmessage( '存在相同编号! ');
end;



[解决办法]
OnValidate
[解决办法]
/用于检查输入信息的完整性和可用性
procedure Txsfrm.ADOQuery2c0602SetText(Sender: TField; const Text: String);
var
i:integer;
begin
Adoquery2c0602.Value:=text;
if frmcxlb.adosp.Locate(frmcxlb.adosp.Fields[0].FieldName,Text,[]) then
begin
for i:=0 to list.Count-1 do
if (list.Strings[i]=text) and
(i <> TStringGrid(self.TntDBGrid1).Row-1) then
begin
Messagebox(self.Handle, '商品编码重复 ', '错误 ',0+16);
Adoquery2c0602.Value:= ' ';
abort;
adoquery2.Fields[1].FocusControl;
end;
if TStringGrid(self.TntDBGrid1).Row> list.Count then
list.Add(text)
else
list.Strings[TStringGrid(self.TntDBGrid1).Row-1]:=text;
end
else
begin
Messagebox(self.Handle, '无此商品 ', '错误 ',0+16);
Adoquery2c0602.Value:= ' ';
abort;
adoquery2c0602.FocusControl;
end;
end;
我写的,没有认真的测试,你自己改一下吧。
[解决办法]
怎么个不行法,说一说,一起讨论一下。

热点排行