我正在尝试创建一个 API 服务器,我需要访问 MySQL 数据库。我有这段代码:
public static class Database
{
private const string ConnectionString = "Server=localhost;Port=3306;Database=contoso_inc;Uid=root;Pwd=f6e527xp;";
public static IEnumerable<User> Execute(string query)
{
using (var connection = new SqlConnection(ConnectionString))
{
var command = new SqlCommand(query, connection);
connection.Open();
var reader = command.ExecuteReader();
var result = new List<User>();
while (reader.Read())
{
var user = new User
{
year = (uint) reader.GetValue(0),
month = (string) reader.GetValue(1),
users_num = (uint) reader.GetValue(2)
};
result.Add(user);
}
reader.Close();
return result;
}
}
}
错误出现在这一行:connection.Open();
。所以显然我不能使用 Port 出于某种原因。问题是什么?
PS 我看过相关的问题,但其中大部分属于实体框架主题。我DbContext
这里没有,所以没有帮助。
我认为您使用错误的驱动程序进行连接。尝试安装这个 nuget 包
Install-Package MySql.Data -Version 8.0.26
然后,你可以做这样的事情。
public static class Database
{
private const string ConnectionString = "Server=localhost;Port=3306;Database=contoso_inc;Uid=root;Pwd=f6e527xp;";
public static IEnumerable<User> Execute(string query)
{
using (var connection = new MySql.Data.MySqlClient.MySqlConnection(ConnectionString))
{
var command = new MySqlCommand(query, connection);
connection.Open();
var reader = command.ExecuteReader();
var result = new List<User>();
while (reader.Read())
{
var user = new User
{
year = (uint) reader.GetValue(0),
month = (string) reader.GetValue(1),
users_num = (uint) reader.GetValue(2)
};
result.Add(user);
}
reader.Close();
return result;
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句