我目前正在尝试用C#学习MySQL,而且我遇到了一些问题。
string currServer = w.server.Text;
string currDatabase = w.database.Text;
string currUser = w.uid.Text;
string currPassword = w.password.Text;
server = currServer;
database = currDatabase;
uid = currUser;
password = currPassword;
这里给我的错误是我不允许连接到该主机。但是当我使用
时 server = "localhost";
database = "test";
uid = "root";
password = "test123";
我可以连接到服务器。我试图创建一个新的MySQL用户并且谷歌搜索了一下。
当我想访问我的Query类来运行查询时,我也遇到此错误我收到错误:连接必须有效或打开。 当我在db_connection类中使用相同的方法时,这不会出现。
Query.cs文件:
public void insertToDatabase()
{
var db_connection = new db_connection();
string query = "UPDATE users SET facebook = 'TEST123' WHERE user_id=9";
MySqlCommand cmd = new MySqlCommand(query, db_connection.Connection);
cmd.ExecuteNonQuery();
Console.WriteLine("Command: " + query + " executed without errors.");
}
db_connection.cs文件:
public class db_connection
{
/* ---- Database Variables for Connection ---- */
public MySqlConnection connection;
private string server;
private string database;
private string uid;
private string password;
public void Initialize(Window w)
{
string currServer = w.server.Text;
string currDatabase = w.database.Text;
string currUser = w.uid.Text;
string currPassword = w.password.Text;
server = "localhost";
database = "test";
uid = "root";
password = "test123";
string connectionString;
connectionString = "SERVER=" + server + ";" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
connection = new MySqlConnection(connectionString);
}
/* ---- Open connection to the database ---- */
public bool openConnection()
{
try
{
connection.Open();
Console.WriteLine("MySQL Connection opened without errors.");
return true;
}
catch (MySqlException ex)
{
switch (ex.Number)
{
case 0:
Console.WriteLine("Could not establish a connection to the server.");
break;
case 1045:
Console.WriteLine("Invalid username or password");
break;
}
return false;
}
}
public MySqlConnection Connection
{
get { return this.connection; }
}
/* ---- Closing the connection to the database ---- */
public bool closeConnection()
{
try
{
connection.Close();
Console.WriteLine("MySQL Connection shutdown without errors.");
return true;
}
catch (MySqlException ex)
{
Console.WriteLine("Error: " + ex.Number);
return false;
}
}
/* ---- Closing connection and trying to re-connect ---- */
public bool refreshConnection()
{
try
{
connection.Close();
Console.WriteLine("Restarting...");
connection.Open();
Console.WriteLine("Connection re-established without errors.");
return true;
}
catch (MySqlException ex)
{
Console.WriteLine("Error:" + ex.Number);
return false;
}
}