非托管类的成员不能成为句柄

时间:2016-05-10 08:00:57

标签: sql database visual-studio c++-cli

我正在尝试使用c ++中的SqlClient设置SQL连接。

我遇到了以下错误

  

“非托管类的成员不能成为句柄”

    #using <mscorlib.dll>
    #using <System.dll>
    #using <System.Data.dll>
    #using <System.Xml.dll>
    using namespace std;

    using namespace System;
    using namespace System::Data;
    using namespace System::Data::SqlClient;

    class CConnection {

    public:
    SqlConnection ^connection=gcnew SqlConnection();

    CConnection(String^,String^);

    void close();
    void connect(String^,String^);
    bool isConnected();
    SqlConnection getCon();

    ~CConnection();

};

错误发生在以下行SqlConnection connection=gcnew SqlConnection();

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您仅使用CConnection关键字将class声明为无人操作的类。但是,CConnection大量使用托管功能:它有一个类型为SqlConnection的成员,它是一个托管类,您使用句柄(^)而不是指针({{ 1}})在课堂上。您可能希望使用ref class而不是仅*CConnection声明为托管类。