У меня есть некоторый код с этого сайта CodeProjectLink для преобразования данных в набор записей. Этот код работал нормально, пока я не перешел на .NET 4 (ранее был 2), теперь, когда я вызываю следующую строку:
Dim result As New ADODB.Recordset()
result.CursorLocation = ADODB.CursorLocationEnum.adUseClient
Dim resultFields As ADODB.Fields = result.Fields
Dim inColumns As System.Data.DataColumnCollection = inTable.Columns
For Each inColumn As DataColumn In inColumns
' The next line gives the error
resultFields.Append(
inColumn.ColumnName,
TranslateType(inColumn.DataType),
inColumn.MaxLength,
IIf(inColumn.AllowDBNull,
ADODB.FieldAttributeEnum.adFldIsNullable,
ADODB.FieldAttributeEnum.adFldUnspecified),
Nothing)
Next
Я получаю эту странную ошибку:
Ошибка: отсутствует экземпляр метода 'void MYDLLNAME ADODB.Fields :: Append (строка, значение типа ADODB.DataTypeEnum, int32, значение типа ADODB.FieldAttributeEnum, объект)' из класса 'ADODB.InternalFields'.
Я попытался изменить свою строку на просто:
resultFields.Append(inColumn.ColumnName, TranslateType(inColumn.DataType))
но это дало ту же ошибку. Функция TranslateType корректно возвращает ADODB.DataTypeEnum.adVarChar, так что это также кажется действительным