我正在尝试打开与Azure SQL数据库的连接。尝试创建通常的connection = new MySqlConnection("Server=" + server + "Database=" + database + "Uid=" + uid + "Password=" + password);
,每个字符串变量以;结尾;但即使数据正确,它也始终无法连接。尝试使用ADO.NET的给定字符串,但后来我得到异常"不支持关键字"。我不知道实际上还有什么......尽可能多地使用Google搜索,但所有解决方案都完全相同,但对我来说没有任何效果:/
答案 0 :(得分:2)
首先,azure数据库不使用mysql。所以使用MySqlConnection()
将无效。
改为使用
SqlConnection connection = new SqlConnection(connectionstring);
标准连接字符串的格式应为
Server=tcp:[serverName].database.windows.net;Database=myDataBase;
User ID=[LoginForDb]@[serverName];Password=myPassword;Trusted_Connection=False;
Encrypt=True;
答案 1 :(得分:0)
var connectionString = @"Server=tcp:<dbname>.database.windows.net,1433;Initial Catalog=<databasename>;Persist Security Info=False;User ID=<userid>;Password=<password>;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;";
我如何连接到我的Azure SQL数据库,对我有用。
答案 2 :(得分:0)
标准.Net Framework提供程序格式为:
Server=[serverName].database.windows.net;Database=myDataBase;
User ID=[LoginForDb]@[serverName];Password=myPassword;Trusted_Connection=False;
Encrypt=True;
Azure SQL数据库是SQL Server类型的数据库,而不是MySQL!
答案 3 :(得分:0)
您是否已经拒绝了微软的指示?
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-connect-query-dotnet-visual-studio
您还必须在azure上创建服务器级防火墙规则,以便能够连接。
答案 4 :(得分:0)
对于MySQL In App,您可以在c#中使用同伴代码来获取连接字符串:
static string getConnectionString()
{
#if DEBUG
string connectionString = "dbname=localdb;host=localhost:3306;user=root;pass=password;";
#else
string connectionString = Environment.GetEnvironmentVariable("MYSQLCONNSTR_localdb");
#endif
string[] options = connectionString.Split(";");
string database = options[0].Split("=")[1]; ;
string serverport = options[1].Split("=")[1];
string server = serverport.Split(":")[0];
string port = serverport.Split(":")[1];
string user = options[2].Split("=")[1];
string password = options[3].Split("=")[1]; ;
connectionString = $"server={server};port={port};database={database};user={user};password={password};";
return connectionString;
}