Fre*_*red 2 vb.net asp.net adodb com-interop
在我的ASP.NET应用程序中,我使用经典的ADO 2.8将一些数据保存到Access数据库中.(或者Jet数据库,对于那些坚持Access只是前端的人来说.)所以我有一个包含一些数据的RecordSet,我想设置一些字段的值,但首先我需要知道字段类型.所以我使用Recordset.Type属性:
Dim fieldType = rs("MyField").Type
Run Code Online (Sandbox Code Playgroud)
这出乎意料地导致错误:MissingMethodException未被用户代码处理 - 错误:缺少方法'实例valuetype ADODB.DataTypeEnum [MyProjectName] ADODB.Field :: get_Type()'来自类'ADODB.InternalField'.
考虑到.NET本身已经创建了.NET/COM互操作程序集,任何想法为什么?
这是最奇怪的事情:当调试器停止并报告错误并将我带到我的代码中它发生的位置时,它具有可以将鼠标悬停在任何变量等上的强大功能,它将显示其价值 - 所以我将鼠标悬停在rs("MyField").Type
零件上,并且,看,它显示正确的价值!
所以,如果它可以在调试时评估它,为什么它在运行时抛出错误???
在此先感谢您的帮助.
小智 7
我在VS2010的VB.NET中遇到了这个问题.我不知道ASP.NET,也不知道你正在使用什么版本的Visual Studio,但我通过关闭项目中该COM引用的"嵌入式互操作类型"属性来修复它.我猜这是一个错误.
至于我如何找到解决方案:当代码在主项目中时,它在.NET 3.5中运行良好.当我将"公共"代码分解为独立库,将其转换为4.0,并开始使用"嵌入式互操作类型"时,我开始遇到问题.这意味着三件事之一导致了它:
我碰巧先尝试#2并修复了它.
归档时间: |
|
查看次数: |
1399 次 |
最近记录: |