首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不允许从“ADODB.Recordset”到“ADODB.Recordset”的隐式转换

不允许从“ADODB.Recordset”到“ADODB.Recordset”的隐式转换
EN

Stack Overflow用户
提问于 2013-10-24 08:06:49
回答 1查看 474关注 0票数 1

最近我遇到了一个运行时错误的麻烦:-

无法从程序集ADODB.FieldsToInternalFieldsMarshaler加载类型“my_assembly”

我正努力纠正给这里这里这里的建议。但是这样做(设置Embed Interop Types=falseCopy Local=trueIsolated=false)导致了大量编译错误消息:-

不允许从“ADODB.Recordset”到“ADODB.Recordset”的隐式转换

当将记录集作为ByRef参数传递时,就会发生这种情况。

建议的解药..。

代码语言:javascript
运行
复制
CType(my_record_set, ADODB.Recordset)

结果是另一个相同类型的错误,这可能需要无限多的CTypes才能治愈。然而,错误消息的Daily性质以及在进行与项目相关的更改之前编译得很好的事实使我得出了这样的结论:代码并不是真正的问题;它是与这个工作周期有关的。

那么,是否有人知道工作周期的问题所在,或者如何修复所建议的解决方案导致的编译错误?

编辑错误所显示的代码:-

代码语言:javascript
运行
复制
Dim record_set As ADODB.Recordset = Nothing
query_string = "some sql-server query"
db_error = Database.DoQuery(query_string, record_set) ' Error in this line

数据库类具有

代码语言:javascript
运行
复制
Public MustOverride Function DoQuery(
                       ByVal query_string As String, _
                       ByRef record_set As ADODB.Recordset) As DATABASE_ERRORS

特别的覆盖是:-

代码语言:javascript
运行
复制
Public Overrides Function DoQuery(
                     ByVal query_string As String, _
                     ByRef record_set As ADODB.Recordset) As DATABASE_ERRORS
    record_set = New ADODB.Recordset
    record_set.CursorLocation = ADODB.CursorLocationEnum.adUseClient
    record_set.Open(query_string,
                    database_connection,
                    ADODB.CursorTypeEnum.adOpenStatic,
                    ,
                    ADODB.CommandTypeEnum.adCmdText)
End Function

(为简洁而省略的错误处理)。

EN

回答 1

Stack Overflow用户

发布于 2016-11-21 12:22:57

我来这里是为了一个类似的问题,但是被引用的图书馆是我们自己的。我找到了解决方案这里,删除了对编译库的引用,为我解决了这个问题。在同一解决方案中同时引用编译版本和源代码,vb.net编译器似乎会感到困惑。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19560367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档