Я хочу получить доступ к openConnection из моего класса dbconnect из другой формы, но он не работает должным образом.Мне нужно скопировать и вставить все Oopenconnection на другую страницу, чтобы они могли получить к нему доступ.
class dbconnect
class DB_Connect
{
private MySqlConnection connection;
private string server;
private string database;
private string uid;
private string password;
//Constructor
public DB_Connect()
{
Initialize();
}
//Initialize values
private void Initialize()
{
server = "localhost";
database = "xyz";
uid = "root";
password = "";
string connectionString = $"datasource=127.0.0.1;port = 3306; SERVER={server}; DATABASE={database}; USERNAME={uid}; PASSWORD={password};sslmode=none";
connection = new MySqlConnection(connectionString);
}
//open connection to database
public bool OpenConnection()
{
try
{
connection.Open();
return true;
}
catch (MySqlException ex)
{
switch (ex.Number)
{
case 0:
MessageBox.Show("Cannot connect to server. Contact administrator");
break;
case 1045:
MessageBox.Show("Invalid username/password, please try again");
break;
}
return false;
}
}
//Close connection
public bool CloseConnection()
{
try
{
connection.Close();
return true;
}
catch (MySqlException ex)
{
MessageBox.Show(ex.Message);
return false;
}
}
}
MyForm 2 При нажатии данные отображаются в dataGridView
private void display_record_Click(object sender, EventArgs e)
{
DB_Connect connect = new DB_Connect(); // I believe this part does not work
string show_query = "SELECT * FROM testing_tb";
if (connect.OpenConnection() == true)
{
using (MySqlCommand cmd_DB = new MySqlCommand(show_query, connection))
{
try
{
using (MySqlDataReader reader = cmd_DB.ExecuteReader())
if (reader.HasRows)
{
dt = new DataTable();
dt.Load(reader);
dataGridView1.DataSource = dt;
}
else
{
MessageBox.Show("No data record detected");
}
connect.CloseConnection();
}
catch (Exception ex)
{
MessageBox.Show("Could not connect to database!\n" + ex, "Database Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}// end of catch
} // end of MySQLCommand
} // end of connection check
}
Я хочу получить доступ к данным из моего dtconnect class
, чтобы мне не приходилось вставлять public bool OpenConnection(){}
в каждую новую форму, в которую я хочу открыть соединение.
Ошибка: не удалось подключиться к базе данных, подключение должно быть действительным и открытым и т. д.