2010-02-19 74 views
2

我試圖在.Net中以編程方式生成ADO記錄集。這將傳遞給已經期待ADO RecordSet的VB6中的現有遺留代碼,我不希望更改現有代碼。以編程方式生成ADODB記錄集

我是成功的一個新的記錄中定義的字段

ADODB.Recordset rs = new Recordset(); 
      rs.Fields.Append("Height", DataTypeEnum.adInteger, 4, FieldAttributeEnum.adFldMayBeNull, null); 

VB6中我可以叫開上不帶參數的記錄集之後添加記錄:

rs.Open 

當我嘗試調用的AddNew與.net代碼它告訴我記錄集必須打開,我不能打開,因爲它期望以下參數:

void Open(object Source, object ActiveConnection, CursorTypeEnum CursorType, LockTypeEnum LockType, int Options); 

但我試圖以編程方式加載RecordSet,並沒有任何活動連接或其他數據源。

我錯過了什麼? 有沒有更好的方法?

回答

1

這些參數在ADODB.Recordset.Open方法中都是可選的。嘗試顯式傳遞documentation中指定的默認值。有一個參數,Source,沒有列出明確的默認值。我想象默認是Nothing編輯我猜錯了,顯然這是System.Type.Missing

因此,解決辦法是:

rs.Open (System.Type.Missing, System.Type.Missing, _ 
    adOpenUnspecified, adLockUnspecified, -1) 
+0

關閉......與System.Type.Missing替代條文或空,它精美的作品。謝謝 – benPearce 2010-02-19 13:15:43

+0

@benPearce我編輯了我的答案,現在是正確的嗎? (對於任何未來碰到這種情況的人) – MarkJ 2010-02-19 17:09:52