把下面一段(Delphi)代码 编译成C#形式

求助 把下面一段(Delphi)代码 编译成C#形式
Delphi(Pascal) code

Delphi, CB:
procedure TFPProcess.SaveFPData(AQuery: TADOQuery; AFingerID: Integer; AFPData: OleVariant);
var
  pData: PChar;
begin
  with AQuery do begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM zkFingerPrint WHERE FingerID = ' + IntToStr(AFingerID));
    Open;
    if IsEmpty then
      Append
    else
      Edit;
    FieldByName('FingerID').Value := AFingerID;
    //保存指纹模板
    with TBlobStream(CreateBlobStream(FieldByName('Template'), bmWrite)) do begin
      pData := VarArrayLock(AFPData);
      try
        Write(pData^, VarArrayHighBound(AFPData, 1) - VarArrayLowBound(AFPData, 1) + 1);
      finally
        VarArrayUnlock(AFPData);
      end;
      Free;
    end;
    Post;
    Close;
  end;
end;


procedure TFPProcess.GetFPData(AQuery: TADOQuery; AFingerID: Integer; var AFPData: OleVariant);
var
  pData: PChar;
begin
  with AQuery do begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM zkFingerPrint WHERE FingerID = ' + IntToStr(AFingerID));
    Open;
    //读取数据
    if not IsEmpty then
       with TBlobStream(CreateBlobStream(FieldByName('Template'), bmRead)) do begin
         AFPData := VarArrayCreate([0, Size + 1], varByte);
         pData := VarArrayLock(AFPData);
         try
           Read(pData^, Size);
         finally
           VarArrayUnlock(AFPData);
         end;
         Free;
       end;
    Close;
  end;
end;



最少能把主体部分翻译出来,分不够你说我可以加,但一定要翻译正确

------解决方案--------------------
一个C#存储blob的例子
http://developer.51cto.com/art/200909/149692.htm
不过记得,添加最好用SqlCommand来做