我正在嘗試創建一個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。這到底是什么問題?
P.S. 我看到了相關的問題,但大多數都屬于 Entity Framework 主題。我這里沒有DbContext,所以它沒有幫助。
uj5u.com熱心網友回復:
我認為你使用了錯誤的驅動來連接。 試著安裝這個nuget包
Install-PackageMySql.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;
}
}
}
uj5u.com熱心網友回復:
埠是在Server關鍵字中指定的,在你的例子中使用:
"Server=localhost, 3306;Database=contoso_inc;Uid=root;Pwd=f6e527xp;"/span>
uj5u.com熱心網友回復:
查看SqlConnection.ConnectionString的檔案,我沒有看到任何 "埠 "鍵的跡象。如果你需要指定埠,你可以在Server部分這樣做:
要連接的SQL Server實體的名稱或網路地址。
server=tcp:servername, portnumber
因此,也許你想。"Server=localhost,3306;..." 或 "Server=tcp:localhost,3306;..." - 如果你真的認為你需要真的需要指定埠的話。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/322500.html
標籤:
上一篇:“從不”型別上不存在
