I am programming in Windows Forms and MySQL.

If I declare this in the program, I can use the connection and command objects in the whole .cs page:

     MySqlConnection connection = null;
     MySqlCommand command = null;
     MySqlDataReader Reader;

But if I write the code below, connection and command objects are declared twice:


     private void cmbo_class_SelectedValueChanged(object sender, EventArgs e)
            {
                string clas = cmbo_class.SelectedItem.ToString();            
    
                try
                {
                    MySqlConnection connection = new MySqlConnection(hp.myConnStr);
                    MySqlCommand command = connection.CreateCommand();
                    MySqlDataReader Reader;
                    command.CommandText = "select id,code from reg_class_master where name ='" + clas + "' and Delete_Status=0";
                    connection.Open();
                    Reader = command.ExecuteReader();
                    while (Reader.Read())
                    {
                        class_id = Convert.ToInt32(Reader[0].ToString());
                        class_code = Reader[1].ToString();
                    }
                    connection.Close();
                }
                catch(Exception ex)
                {
                    MessageBox.Show("Error in ","Information",MessageBoxButtons.OK,MessageBoxIcon.Information);
                }
    
                cmbo_division.Items.Clear();
                
                try
                {
                    MySqlConnection connection = new MySqlConnection(hp.myConnStr);
                    MySqlCommand command = connection.CreateCommand();
                    MySqlDataReader Reader;
                    command.CommandText = "select name from reg_division_master where class_id = " + class_id + " and Delete_Status=0 order by display_index";
                    connection.Open();
                    Reader = command.ExecuteReader();
                    while (Reader.Read())
                    {
                        cmbo_division.Items.Add(Reader[0].ToString());
                    }
                    connection.Close();
                }
                catch
                {
                }


I think one object declaration is the best way. Do more object declarations affect the program?