我把excel数据读入到advStringgrid中,然后再倒入到数据库中,为什么用了edit不能更新呢?请问如何更新数据库存在的数据呢?
adoTbCarrier.Close;
adoTbCarrier.Open;
for i := 0 to asg.RowCount-1 do
if asg.Cells[0,i] <>'' then
begin
adoTbCarrier.Edit;
//adoTbCarrier.Locate('carrierid',asg.Cells[0,1],[loPartialKey]);
adoTbCarrier.FieldByName('carrierCode').AsString :=asg.Cells[1,i];
adoTbCarrier.Post;
{
adoTbCarrier.Append;
adoTbCarrier.FieldByName('carrierId').AsString := asg.Cells[0,i]; //小区号
adoTbCarrier.FieldByName('carrierCode').AsString := asg.Cells[1,i]; //小区名称
adoTbCarrier.Post;}
end;
ShowMessage('数据导入成功!');
adoTbCarrier.Close;
adoTbCarrier.Open;
for i := 0 to asg.RowCount-1 do
if asg.Cells[0,i] <>'' then
begin
adoTbCarrier.Edit;
//adoTbCarrier.Locate('carrierid',asg.Cells[0,1],[loPartialKey]);
adoTbCarrier.FieldByName('carrierCode').AsString :=asg.Cells[1,i];
adoTbCarrier.Post;
{
adoTbCarrier.Append;
adoTbCarrier.FieldByName('carrierId').AsString := asg.Cells[0,i]; //小区号
adoTbCarrier.FieldByName('carrierCode').AsString := asg.Cells[1,i]; //小区名称
adoTbCarrier.Post;}
end;
ShowMessage('数据导入成功!');
出问题原因可能是你的数据集没有移动;就是adotbcarrier一直指向一条固定记录。
所以没有出现楼主预期的修改动作;
你可以试试如下代码:
adoTbCarrier.Close;
adoTbCarrier.Open;
adotbcarrier.first;
for i := 0 to asg.RowCount-1 do
if asg.Cells[0,i] <>'' then
begin
adoTbCarrier.Edit;
adoTbCarrier.FieldByName('carrierCode').AsString :=asg.Cells[1,i];
adoTbCarrier.Post;
adotbcarrier.next;
end;
ShowMessage('数据导入成功!');