无法将“ADODB.Recordset”类型的对象转换为“MSDATASRC.DataSource”类型
Posted
技术标签:
【中文标题】无法将“ADODB.Recordset”类型的对象转换为“MSDATASRC.DataSource”类型【英文标题】:Unable to cast object of type 'ADODB.Recordset' to type 'MSDATASRC.DataSource' 【发布时间】:2012-11-27 15:29:34 【问题描述】:我有一个将 Vb6 迁移到 c#.net 的项目。当我运行这个 c# 解决方案时,我得到了一个 InvalidCastException,例如 Unable to cast object of type 'ADODB.Recordset' to type 'MSDATASRC.DataSource'
在语句DataGrid1.DataSource = (MSDATASRC.DataSource)(object)(Module1.rs);.
其中rs生成如下: 公共静态 ADODB.Connection conn = null; 公共静态 ADODB.Recordset rs = null;
conn = new ADODB.Connection();
conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.Windows.Forms.Application.StartupPath + "\\myDatabase.mdb;Persist Security Info=False",String.Empty,String.Empty,-1);
rs = new ADODB.Recordset();
rs.ActiveConnection = conn;
rs.CursorLocation = (ADODB.CursorLocationEnum)(MSAdodcLib.CursorLocationEnum.adUseClient);
rs.CursorType = (ADODB.CursorTypeEnum)(MSAdodcLib.CursorTypeEnum.adOpenDynamic);
rs.LockType = ADODB.LockTypeEnum.adLockOptimistic;
rs.Source = "SELECT * FROM MyTable";
rs.Open(null,null,ADODB.CursorTypeEnum.adOpenUnspecified,ADODB.LockTypeEnum.adLockUnspecified,-1);
谁能帮我解决这个问题。
【问题讨论】:
【参考方案1】:尝试:
DataGrid1.DataSource = DataGrid1.DataSource = (MSDATASRC.DataSource)(object)(Module1)
【讨论】:
嗨,Oscar,我尝试使用您的代码,但出现错误,例如**'Project1.Module1' is a 'type' but is used like a 'variable'** 我试过这样 DataGrid1.DataSource = (MSDATASRC.DataSource)(object)(Module1.rs.Source);。现在我可以加载页面,但我无法从表中获取记录。以上是关于无法将“ADODB.Recordset”类型的对象转换为“MSDATASRC.DataSource”类型的主要内容,如果未能解决你的问题,请参考以下文章
ADODB.Recordset 错误 '800a0bb9' 参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
如何从此 ADODB.Recordset 中获取插入 ID?