При добавлении в бд при помощи combobox выскакивает на отладке connection must be valid and open

В общем сидел, попробовал GetConnection и OpenConnection вписать куда только можно, но результат один, во время отладки выдаёт что подключение не открыто, в интернете что сделать я не нашёл, вот и пишу сюда введите сюда описание изображения Код подключения

class DB
    {
        MySqlConnection database = new MySqlConnection("server=localhost; port=3306; username=root; password=; database=kart;");

        public void OpenConnection()
        {
            if(database.State == System.Data.ConnectionState.Closed)
                database.Open();
        }
        public void CloseConnection()
        {
            if (database.State == System.Data.ConnectionState.Open)
                database.Close();
        }

        public MySqlConnection GetConnection()
        {
            return database;
        }
    }

Код передачи в кнопку

static public int AddName(string name_k, string color, string tip_kart)
     {
         MySqlCommand sqlcom = new MySqlCommand();
         try
         {
             sqlcom.CommandText = @"SELECT id_tip FROM sp_type_kart WHERE tip_kart ='" + tip_kart + "'";
             int nomer_tip = (Int32)sqlcom.ExecuteScalar();
             sqlcom.CommandText = @"INSERT INTO `nazvaniya_kart` VALUES (name_k, color, '" + nomer_tip + "')";
             if (sqlcom.ExecuteNonQuery() >= 0)
             {
                 return 1;
             }
             else
             {
                 return 2;
             }
         }
         catch
         {
             return 2;
         }
     }

Код самой кнопки

private void naz_add_Click(object sender, EventArgs e)
        {
            DB db = new DB();
            db.OpenConnection();

            AddName(name_k_f.Text, color_f.Text, tip_kart_cb.Text);
            
            GetNameList();
        }

Ответы (1 шт):

Автор решения: jolychik

Меня озарило, решил попробовать, оказалось верно.

Заменяем эту строку:

sqlcom.CommandText = @"
  SELECT id_tip 
  FROM sp_type_kart 
  WHERE tip_kart ='" + tip_kart + "'";

На эту:

MySqlCommand sqlcom = new MySqlCommand(
  "SELECT id_tip FROM sp_type_kart WHERE tip_kart ='" + tip_kart + "'",
  db.GetConnection());

И в самом начале AddName добавить:

DB db = new DB();
db.OpenConnection();

И всё работает.

→ Ссылка