C++/CLI SQL使用参数为字符串的ConnectionString
正在尝试连接到VS2019 C++/CLI应用程序中的SQL Server。 此代码适用于我:C++/CLI SQL使用参数为字符串的ConnectionString,sql,command-line-interface,c++-cli,Sql,Command Line Interface,C++ Cli,正在尝试连接到VS2019 C++/CLI应用程序中的SQL Server。 此代码适用于我: #include "pch.h" #include <iostream> #using < System.dll> #using < System.Data.dll> using namespace std; using namespace System; using namespace System::Data; using namespa
#include "pch.h"
#include <iostream>
#using < System.dll>
#using < System.Data.dll>
using namespace std;
using namespace System;
using namespace System::Data;
using namespace System::Data::SqlClient;
bool ConnectToSQLServer(string server)
{
SqlConnection cnn;
cnn.ConnectionString = "Server=.\\SQLExpress;Integrated Security=SSPI;database=master";
try
{
cnn.Open();
cnn.Close();
return true;
}
catch (SqlException ^ex)
{
return false;
}
}
int main()
{
if (ConnectToSQLServer(".\\SQLExpress"))
printf("Connected!");
else
printf("Can not connect to SQL server!");
return 0;
}
我发现编译器错误:
错误(激活)E1767功能
“System::Data::SqlClient::SqlConnection::ConnectionString::set”无法
使用给定的参数列表调用
尝试使用SqlConnectionStringBuilder时出现相同错误:
SqlConnectionStringBuilder sqlBuilder;
sqlBuilder.DataSource = server;
<如何在CalrnString中使用字符串类型?< P> CLR/CLI C++中,不应该使用<代码>字符串< /C> >这是含糊的。它可能是
std::string
,它的类型与.NET的string
不同。特别是,很难判断何时使用:使用名称空间std代码>
您应该做的是使用String^
,它是对.NET类的引用
因此,您的代码应该类似于:
bool ConnectToSQLServer(String^ server)
{
SqlConnection cnn;
cnn.ConnectionString = String::Format("Server={0};Integrated Security=SSPI;database=master", server);
try
{
cnn.Open();
cnn.Close();
return true;
}
catch (SqlException ^ex)
{
return false;
}
}
你可以这样称呼它:
ConnectToSQLServer(gcnew String(".\\SQLExpress"));
谢谢它使用起来非常简单
ConnectToSQLServer(gcnew String(".\\SQLExpress"));