我在连接 MySQL Server 数据库时遇到问题并收到以下错误:
错误信息
用户“root”登录失败。原因:未与受信任的 SQL Server 连接关联。
这是发生错误的代码:
public bool IsValid(string username, string password)
{
using (var con = new SqlConnection("Server=localhost;Database = timekeeping; Uid = root; Pwd = admin;"))
using (var cmd = con.CreateCommand())
{
con.Open();
cmd.CommandText = "SELECT count(*) FROM receptionist WHERE username = @username AND password = @password;";
cmd.Parameters.AddWithValue("@username", username);
cmd.Parameters.AddWithValue("@password", password);
var count = (long)cmd.ExecuteScalar();
return count > 0;
}
}
屏幕截图:
这是我的配置文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="ODBCDriver" value="Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=timekeeping;uid=root;pwd=admin;Option=3;"/>
</appSettings>
<connectionStrings>
<add name="connStr" connectionString="Database=timekeeping;uid=root;pwd=admin;Option=3;" />
</connectionStrings>
</configuration>
最佳答案
您使用MySQL吗?错误消息清楚地表明它不与受信任的SQL Server连接关联。我还看到您正在使用SqlConnection(这意味着SqlCommand、SqlDataAdapter、SqlDataReader等) )来自 System.Data.SqlClient 命名空间 - 特定于 SQL Server:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.aspx (表示与 SQL Server 数据库的打开连接。)。
要从 .NET 连接到 MySQL 数据库,您可以使用 ODBC(可能还有其他选项),或者如果您想坚持使用 ADO.NET,则可以使用 MySQL Connector 。
我想这应该可以解决你的问题。如果我没有记错的话,命名空间将是 MySql.Data.MySqlClient,类将被命名为 MySqlConnection 等等。但不确定实际的前缀、命名空间或命名 - 目前在 Mac 上。这里没有 .NET :-D
关于mysql - 不与受信任的 SQL Server 连接 (MySQL) 关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6462501/