日期:2014-05-19  浏览次数:20878 次

怎样向老组件传递ADO连接对象?
以前用VB6.0开发的组件,在C#中引用后老组件及ADO2.6,需要向老组件传递一个“ADODB.Connection”数据库连接对象,代码如下:

SqlServer=ConfigurationSettings.AppSettings.Get( "SqlServer ");
SqlDb=ConfigurationSettings.AppSettings.Get( "SqlDb ");
SqlDbUid=ConfigurationSettings.AppSettings.Get( "SqlDbUid ");
SqlDbPwd=ConfigurationSettings.AppSettings.Get( "SqlDbPwd ");


ADODB.Connection   conn=new   ADODB.Connection();
conn.Open( "Provider=SQLOLEDB.1;Server= "+SqlServer+ ";UID= "+SqlDbUid+ ";PWD= "+SqlDbPwd+ ";Database= "+SqlDb, " ", " ",0);
configs   sys=new   configs();     //configs为老的组件
sys.init(conn);   //向老组件传递连接对象


错误提示:
E:\My   Documents\Visual   Studio   Projects\AutoUpdate\AutoUpdate.cs(104):   与“EqunNews._configs.init(ref   ADODB.Connection)”最匹配的重载方法具有一些无效参数
E:\My   Documents\Visual   Studio   Projects\AutoUpdate\AutoUpdate.cs(104):   参数“1”   :   无法从“ADODB.Connection”转换为“ref   ADODB.Connection”


老组件使用的ADO对象版本为2.6,在C#中也引用了同一版本ADO。

.Net初学者请求帮助,谢谢!


------解决方案--------------------
晕,组件写的有问题。
为什么不是传递进去一个字符串呢?
试试 sys.init(ref conn);
------解决方案--------------------
改成这样的试试看:

sys.init(ref conn); //向老组件传递连接对象