尝试 SqlConnection 时出现错误 C2440

Getting error C2440 when trying SqlConnection

获得

Error C2440: 'initializing': cannot convert from 'System::Data::SqlClient::SqlConnection' to 'System::Data::SqlClient::SqlConnection ^'

这条线

    SqlConnection^ con = SqlConnection("c:\project\project\database.db");

想知道为什么我会收到此错误以及如何修复它,我使用的是 visual c++,winform ui

错误消息应该清楚地说明出了什么问题。你只需要仔细看,因为这是一个字符的差异。又来了,去掉了噪音:

cannot convert from 'SqlConnection' to 'SqlConnection ^'

看到最后的 ^ 字符了吗?编译器说它无法从对象 (SqlConnection) 转换为托管对象指针 (SqlConnection^)。

要创建指向对象的托管指针,您可以使用 gcnew 运算符:

SqlConnection^ con = gcnew SqlConnection("c:\project\project\database.db");

或者,如果您实际上不需要指针,只需更改 con 变量的类型即可:

SqlConnection con = SqlConnection("c:\project\project\database.db");

详情请见:What does the caret (‘^’) mean in C++/CLI?