下面是原码:
procedure TForm3.N2Click(Sender: TObject);
var
a:integer;
sql,bianhao,current_time,state,beizhu:string;begin
for a:=listbox2.items.count -1 downto 0 do begin
if listbox2.Selected[a]=true then
begin
name:=listbox2.Items[a];
sqldataset1.Active:=false;
sqldataset1.CommandText:='SELECT bianhao, name FROM jbhk WHERE name=''' +name + '''';
sqldataset1.Active:=true;
sqldataset1.DisableControls ;
while not sqlDataSet1.Eof do
begin
{ID := ADODataSet1.FieldByName('ID').AsString;} {Number := ADODataSet1.FieldByName('Number').AsString;}
bianhao := sqldataSet1.FieldByName('bianhao').AsString ;
current_time:=DateTimeToStr(Now);
state:='0' ;
beizhu:='' ;
sql := 'Insert Into hzk(name,bianhao,szsj,state,operator,beizhu) ';
sql := sql + 'Values(''' + name + ''',''' + bianhao + ''', ''' + current_time + ''','''+ state + ''',''' + denglu.form2.p_name + ''','''+ beizhu +''')' ;
sqldataset1.Next;
end;
sqlQuery1.SQL .Add (SQL);
sqlQuery1.ExecSQL;
name:=listbox2.Items[a];
listbox2.items.Delete(a);
listbox1.Items.add(name);
// listbox1.items.Delete(a);
end
end;
//执行到这里数据库中,仍只有添加一行数据
clientdataset1.Active :=false; clientdataset1.Active :=true;
//执行此两句后,数据库的数据跟循环次数增加了。
showmessage('增加检查成功!');end;请高手帮我解决一下。
procedure TForm3.N2Click(Sender: TObject);
var
a:integer;
sql,bianhao,current_time,state,beizhu:string;begin
for a:=listbox2.items.count -1 downto 0 do begin
if listbox2.Selected[a]=true then
begin
name:=listbox2.Items[a];
sqldataset1.Active:=false;
sqldataset1.CommandText:='SELECT bianhao, name FROM jbhk WHERE name=''' +name + '''';
sqldataset1.Active:=true;
sqldataset1.DisableControls ;
while not sqlDataSet1.Eof do
begin
{ID := ADODataSet1.FieldByName('ID').AsString;} {Number := ADODataSet1.FieldByName('Number').AsString;}
bianhao := sqldataSet1.FieldByName('bianhao').AsString ;
current_time:=DateTimeToStr(Now);
state:='0' ;
beizhu:='' ;
sql := 'Insert Into hzk(name,bianhao,szsj,state,operator,beizhu) ';
sql := sql + 'Values(''' + name + ''',''' + bianhao + ''', ''' + current_time + ''','''+ state + ''',''' + denglu.form2.p_name + ''','''+ beizhu +''')' ;
sqldataset1.Next;
end;
sqlQuery1.SQL .Add (SQL);
sqlQuery1.ExecSQL;
name:=listbox2.Items[a];
listbox2.items.Delete(a);
listbox1.Items.add(name);
// listbox1.items.Delete(a);
end
end;
//执行到这里数据库中,仍只有添加一行数据
clientdataset1.Active :=false; clientdataset1.Active :=true;
//执行此两句后,数据库的数据跟循环次数增加了。
showmessage('增加检查成功!');end;请高手帮我解决一下。
begin
{ID := ADODataSet1.FieldByName('ID').AsString;} {Number := ADODataSet1.FieldByName('Number').AsString;}
bianhao := sqldataSet1.FieldByName('bianhao').AsString ;
current_time:=DateTimeToStr(Now);
state:='0' ;
beizhu:='' ;
sql := 'Insert Into hzk(name,bianhao,szsj,state,operator,beizhu) ';
sql := sql + 'Values(''' + name + ''',''' + bianhao + ''', ''' + current_time + ''','''+ state + ''',''' + denglu.form2.p_name + ''','''+ beizhu +''')' ;
sqlQuery1.SQL .Add (SQL);
sqlQuery1.ExecSQL;
sqldataset1.Next;
end;
一定是最后一行添加了吧
sqlQuery1.SQL .Add (SQL);
sqlQuery1.ExecSQL;
这两个要放在Next 句子上面才行的哦
执行后,数据本来是一条,但变成多条了。
在执行clientdataset1.Active :=false; clientdataset1.Active :=true;
后
procedure TForm3.N2Click(Sender: TObject);
var
a:integer;
sql,bianhao,current_time,state,beizhu:string;
begin for a:=listbox2.items.count -1 downto 0 do
begin
if listbox2.Selected[a]=true then
begin
name:=listbox2.Items[a];
sqldataset1.Active:=false;
sqldataset1.CommandText:='SELECT bianhao, name FROM jbhk WHERE name=''' +name + '''';
sqldataset1.Active:=true;
showmessage(inttostr(sqldataset1.recordcount)); // 如果> 1 then在后边的循环中多次插入
sqldataset1.DisableControls ;
while not sqlDataSet1.Eof do
begin
{ID := ADODataSet1.FieldByName('ID').AsString;}
{Number := ADODataSet1.FieldByName('Number').AsString;}
bianhao := sqldataSet1.FieldByName('bianhao').AsString ;
current_time:=DateTimeToStr(Now);
state:='0' ;
beizhu:='' ;
sql := 'Insert Into hzk(name,bianhao,szsj,state,operator,beizhu) ';
sql := sql + 'Values(''' + name + ''',''' + bianhao + ''', ''' + current_time + ''','''+ state + ''',''' + denglu.form2.p_name + ''','''+ beizhu +''')' ;
sqldataset1.Next;
end;
showmessage(sql); //看一下,肯定会有多个插入语句的情况
sqlQuery1.SQL .Add (SQL);
sqlQuery1.ExecSQL; // 执行这句后并不会刷新客户端的数据显示
name:=listbox2.Items[a];
listbox2.items.Delete(a);
listbox1.Items.add(name);
// listbox1.items.Delete(a);
end
end;
//执行到这里数据库中,仍只有添加一行数据
clientdataset1.Active :=false; clientdataset1.Active :=true; // 执行这句后刷新客户端的数据显示
//执行此两句后,数据库的数据跟循环次数增加了。
showmessage('增加检查成功!');end;