// 连接数据库
String^ ConnString =  "Data Source=L3DB1; User Id=maintance; Password=maintance;";
OracleConnection conn = new OracleConnection( ConnString );
报错:
错误 2 error C2664: 'System::Data::OracleClient::OracleConnection::OracleConnection(System::String ^)' : cannot convert parameter 1 from 'System::Data::OracleClient::OracleConnection *' to 'System::String ^' 错误 1 error C2750: 'System::Data::OracleClient::OracleConnection' : cannot use 'new' on the reference type; use 'gcnew' instead c:\documents and settings\heyu\my documents\visual studio 2005\projects\processwatch_fun\processwatch\Form1.h 1011请问怎么解决呢?我用的是C++,不是C#,另外哪里可以找到C++ 操作ORACLE的例子呢

解决方案 »

  1.   

    我用的是引用表空间是
    using namespace System::Data::OracleClient;
      

  2.   

    String^   ConnString   "^"是个什么东东? 打错了?MSDN上C#的例子, 只是语法不同而已,framework是一样的.
    [C#] 
    public void InsertRow(string myConnection) 
    {
       // If the connection string is null, use a default.
       if(myConnection == "") 
       {
          myConnection = "Data Source=Oracle8i;Integrated Security=yes";
       }
       OracleConnection myConn = new OracleConnection(myConnection);
       string myInsertQuery = "INSERT INTO Dept (DeptNo, Dname, Loc) values (50, 'TECHNOLOGY', 'DENVER')";
       OracleCommand myOracleCommand = new OracleCommand(myInsertQuery);
       myOracleCommand.Connection = myConn;
       myConn.Open();
       myOracleCommand.ExecuteNonQuery();
       myConn.Close();
    }
      

  3.   

    [Visual Basic] Public Sub New(String)
    [C#] public OracleConnection(string);
    [C++] public: OracleConnection(String*);
    [JScript] public function OracleConnection(String);
    [C++] 的构造孙子数是要求一个指针的. 你需要传一个指针进去.String   ConnString   =     "Data   Source=L3DB1;   User   Id=maintance;   Password=maintance;";
    OracleConnection   conn   =   new   OracleConnection(   &ConnString   ); 
      

  4.   

    改成了传引用 ,还是报错。String^就是声明一个System::String类型的变量,我理解的是这样。我也刚学用VC2005,
    现在报的错是不能使用new,要使用gcnew;
    不能将参加1由 'System::String^* 转换为'System::String^ 
      

  5.   

    http://topic.csdn.net/u/20080226/14/593b91fd-6935-4937-a7bb-f2e2a4ef63b0.html
    lz写的就是oracle的
    奇怪没有cstring?
      

  6.   

    我用的是.NET
    MSDN上在的语法就是这个描述的
    public:
    OracleConnection( String^ connectionString)system::data::oracleclient命名空间里面的类函数
      

  7.   

    CString   con_str; 
    con_str.Format("Provider=OraOLEDB.Oracle.1;Data   Source=%s;User   ID=%s;Password=%s", 
    m_strEServerName,m_strEUserId,m_strEPassword); 
      

  8.   

    String^   ConnString   =     "Data Source=L3DB1;User Id=maintance;Password=maintance;";
     OracleConnection   conn(ConnString); 调试了一下,改成这样写没问题.托管的C++还真是第一次用.....真是....
      

  9.   

    谢谢。。搞定了请问将c#变成托管的C++有规律吗?因为这才是操作数据库的第一步,就遇到这么多问题...真不知道后面还会有什么问题.谢谢wawaku 
      

  10.   

    OracleConnection       conn(ConnString); 这行代码,其实是C++风格的代码. 但是这个托管的C++有点奇怪. 
    不过在MSDN里有这样一项"C++ 托管扩展编程"  你去搜一下,对托管C++,讲的很详细顺便提一下,把贴结了吧.俺等着接分呐.哈哈