title: C# Too many connections in MySQL
body: <p>I try to run <code>SELECT</code> on a table in <code>MySql</code> and i get this error:</p>
  
  <pre><code>    Server Error in '/MyApp' Application.
  Too many connections
  Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
  
  Exception Details: MySql.Data.MySqlClient.MySqlException: Too many connections
  
  Source Error:
  
  An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
  
  Stack Trace:
  
  
  [MySqlException (0x80004005): Too many connections]
     MySql.Data.MySqlClient.MySqlStream.ReadPacket() +517
     MySql.Data.MySqlClient.NativeDriver.Open() +702
     MySql.Data.MySqlClient.Driver.Open() +245
     MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings) +297
     MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection() +18
     MySql.Data.MySqlClient.MySqlPool.GetPooledConnection() +403
     MySql.Data.MySqlClient.MySqlPool.TryToGetDriver() +228
     MySql.Data.MySqlClient.MySqlPool.GetConnection() +106
     MySql.Data.MySqlClient.MySqlConnection.Open() +1468
  
  
  Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1 
  </code></pre>
  
  <p>I run it on iis with .net and C#.
  Any idea how i can fix this problem?</p>
  
  <p>This is for example how i make select:</p>
  
  <p>MySqlDataReader msdr;</p>
  
  <pre><code>    MySqlConnection connect = new MySqlConnection(connectionStringMySql);
      MySqlCommand cmd = new MySqlCommand();
  
      string commandLine = "SELECT * FROM Table WHERE active=1;
  
      commandLine = commandLine.Remove(commandLine.Length - 3);
      cmd.CommandText = commandLine;
  
      cmd.Connection = connect;
      cmd.Connection.Open();
  
      msdr = cmd.ExecuteReader();
  
      while (msdr.Read())
      {
          //Read data
      }
  
      msdr.Close();
      cmd.Connection.Close(); 
  </code></pre>
  
  <p>This is how i Delete:</p>
  
  <pre><code>                MySqlConnection connect = new MySqlConnection(connectionStringMySql);
                  MySqlCommand cmd = new MySqlCommand();
  
                  cmd.Connection = connect;
                  cmd.Connection.Open();
  
                  string commandLine = @"DELETE FROM Table WHERE id=@id;";
  
                  cmd.CommandText = commandLine;
  
                  cmd.Parameters.AddWithValue("@id", slotId);
  
                  cmd.ExecuteNonQuery();
                  cmd.Connection.Close();
  </code></pre>
  
  <p>This is how i insert:</p>
  
  <pre><code>MySqlConnection connect = new MySqlConnection(connectionStringMySql);
                  MySqlCommand cmd = new MySqlCommand();
  
                  cmd.Connection = connect;
                  cmd.Connection.Open();
  
                  string commandLine = @"INSERT INTO Table (id, weekday, start, end) VALUES" +
                      "(@ id, @weekday, @start, @end);";
  
                  cmd.CommandText = commandLine;
  
                  cmd.Parameters.AddWithValue("@ id", id);
                  cmd.Parameters.AddWithValue("@weekday", item.weekday);
                  cmd.Parameters.AddWithValue("@start", new TimeSpan(item.starthour, item.startmin, 0));
                  cmd.Parameters.AddWithValue("@end", new TimeSpan(item.endhour, item.endmin, 0));
  
                  cmd.ExecuteNonQuery();
                  long id = cmd.LastInsertedId;
                  cmd.Connection.Close();
                  return id;
  </code></pre>