读书人

delphi DataSource.DataSet.Append时出

发布时间: 2012-03-16 16:34:56 作者: rapoo

delphi DataSource.DataSet.Append时出现一条空记录,如何处理?
TmpClientDataSet:=TOurwayClientDataSet.Create(self);
if InitClientDataSet(TmpClientDataSet, gShareData, 'Storage_GetStorageSparePart',4757) = RET_SUCCESS then
begin
myGrid.DataSource.DataSet.Edit;

//根据参数获取数据
TmpClientDataSet.vParameter := VarArrayof([gShareData.sAccountID,oweStorageID.Code,'0','0']);//获取参数
TmpClientDataSet.SuperProcess;
if TmpClientDataSet.RecordCount>0 then
begin
with TmpClientDataSet do
begin
TmpClientDataSet.First;
while not Eof do
begin
myGrid.DataSource.DataSet.Append;
myGrid.DataSource.DataSet.FieldByName('AccountID').AsString:=TmpClientDataSet.FieldValues['AccountID'];
myGrid.DataSource.DataSet.FieldByName('SparePartID').AsString:=TmpClientDataSet.FieldValues['SparePartID'];
myGrid.DataSource.DataSet.FieldByName('spname').AsString:=TmpClientDataSet.FieldValues['spname'];
myGrid.DataSource.DataSet.FieldByName('standard').AsString:=TmpClientDataSet.FieldValues['standard'];
myGrid.DataSource.DataSet.FieldByName('model').AsString:=TmpClientDataSet.FieldValues['model'];
myGrid.DataSource.DataSet.FieldByName('unit').AsString:=TmpClientDataSet.FieldValues['unit'];
myGrid.DataSource.DataSet.FieldByName('sptname').AsString:=TmpClientDataSet.FieldValues['sptname'];
myGrid.DataSource.DataSet.FieldByName('Price').AsFloat:=TmpClientDataSet.FieldByName('Price').AsFloat;
myGrid.DataSource.DataSet.FieldByName('BoothID').AsString:=TmpClientDataSet.FieldValues['BoothID'];
myGrid.DataSource.DataSet.FieldByName('bname').AsString:=TmpClientDataSet.FieldValues['bname'];
myGrid.DataSource.DataSet.FieldByName('MGuestID').AsString:=TmpClientDataSet.FieldValues['MGuestID'];
myGrid.DataSource.DataSet.FieldByName('gname').AsString:=TmpClientDataSet.FieldValues['gname'];
myGrid.DataSource.DataSet.FieldByName('OldNumber').AsFloat:=TmpClientDataSet.FieldValues['OldNumber'];
myGrid.DataSource.DataSet.FieldByName('NewNumber').AsFloat:=TmpClientDataSet.FieldValues['NewNumber'];
myGrid.DataSource.DataSet.FieldByName('Remark').AsString:=TmpClientDataSet.FieldValues['Remark'];
myGrid.DataSource.DataSet.FieldByName('State').AsInteger:=TmpClientDataSet.FieldValues['State'];
myGrid.DataSource.DataSet.FieldByName('SparePartTypeID').AsString:=TmpClientDataSet.FieldValues['SparePartTypeID'];
myGrid.DataSource.DataSet.Post;
TmpClientDataSet.Next;
end;
end;

end;

end;

finally
TmpClientDataSet.Free;
end;


添加完正常应该15条记录,但是myGrid第一条显示的却是空记录,后面的15条记录都正确??

[解决办法]
去掉 myGrid.DataSource.DataSet.Edit; 这句看看.

读书人网 >.NET

热点推荐