Louisa Louisa - 4 months ago 22
SQL Question

MySQL exceptions not caught (C#)

My C# program works with a MySQL database.

For some reason the program cannot catch exceptions caused my the MySQL connection.

Example:

If I make the credentials in the connection string invalid, the program crashes like this (even when running in the debugger): http://imgur.com/SfzkVdW

The connection code is like this:

using MySQLDriverCS;

namespace XXX
{
public class Data
{
private static MySQLConnection con;

static Data()
{
string connectionString = new MySQLConnectionString("XXX",
"XXX",
"XXX",
"XXX").AsString;

con = new MySQLConnection(connectionString + ";CharSet=utf8");
con.Open(); // For testing the connection
con.Close();
}
...


Any ideas for how I can improve things and start catching MySQL exceptions?

I have tried wrapping the code in the static constructor in a try-catch. That didn't help. The program still crashed in the same way.

Thanks.




Same code with the try-catch wrapper. It still fails with the same error: http://imgur.com/SfzkVdW

static Data()
{
try
{
string connectionString = new MySQLConnectionString("XXX",
"XXX",
"XXX",
"XXX").AsString;

con = new MySQLConnection(connectionString + ";CharSet=utf8");
con.Open(); // For testing the connection
con.Close();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}

Answer

Use the appropriate exception type in the catch block.

Use the appropriate MySQL classes.

using MySql.Data.MySqlClient;

// class level var or whatnot:
string connString = @"server=theHostName;userid=dbuser123;password=OpenSesame7;database=my_db_name";


public void connect()
{
    try
    {
        conn = new MySqlConnection(connString); // read above comments for (conn)
        conn.Open();
    }
    catch (MySqlException ex)
    {
        MessageBoxButtons buttons = MessageBoxButtons.OK;
        string s="MySqlException: "+ex.ToString();
        MessageBox.Show(s,"Error",buttons);
    }
    finally
    {
        if (conn != null)
        {
            //conn.Close();
        }
    }
}

Error Caught No Problem:

enter image description here

Add References screenshot:

enter image description here

Comments