install SQL Server 2000 SP2, also seehttp://groups.google.com/groups?selm=O6c%24sd01BHA.392%40tkmsftngp03&oe=UTF-8&output=gplain

解决方案 »

  1.   

    tlbImp path\sqldmo.dll /out:csSqlDMOtlbImp 是什么意思,它不是有效的dos命令呀
      

  2.   

    it is an exe from .NET Framework you can use to import a type library of a COM component as a .NET assembly, seeImporting a Type Library as an Assembly
    http://msdn.microsoft.com/library/en-us/cpguide/html/cpconimportingtypelibraryasassembly.asp?frame=true
      

  3.   

    我已经使用tlbImp工具将sqldmo.dll转换为.net装配件sqldmo.dll,然后在
    C#中引用它 SQLDMO.ApplicationClass oSQLServerDMOApp = new SQLDMO.ApplicationClass ();
     SQLDMO.NameList namX = oSQLServerDMOApp.ListAvailableSQLServers();
        for (int i = 1; i < namX.Count ; i++)
           {
                listBox1.Items.Add(namX.Item(i));
            }
    程序报错信息依然为: 接口 SQLDMO.NameList 的 QueryInterface 失败
    这和在.net中直接使用com组件SQLDMO.dll弹出的错误是一样的,问题在哪里呢?请您指点!!非常感谢
      

  4.   

    install SQL Server 2000 SP2, make sure you got the new sqldmo.dll and redo tlbImp
      

  5.   

    在您的帮助下,问题终于在安装了sql server2000 sp2后得到最终解决,在此非常感激,这可是我第一次来csdn问问题的 :)
       此外,不将sqldmo.dll转换成装配件,直接在C#中引用该COM组件也是完全可以的。即在.net中装配件和原来的COM组件在使用上和执行效果上是一样的,那么,在什么情况下才应该将COM组件转换为装配件呢? 非常感谢!!
      

  6.   

    在c#中添加对com组件的引用,是.net帮你做了转换的操作