0

SELECTのテーブルで実行しようとすると、次のMySqlエラーが発生します。

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

ソース エラー:

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.

スタックトレース:

[MySqlException (0x80004005): 接続が多すぎます] MySql.Data.MySqlClient.MySqlStream.ReadPacket() +517 MySql.Data.MySqlClient.NativeDriver.Open() +702 MySql.Data.MySqlClient.Driver.Open() +245 MySql .Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder 設定) +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

バージョン情報: Microsoft .NET Framework バージョン:4.0.30319; ASP.NET バージョン:4.0.30319.1

.net と C# を使用して iis で実行します。この問題を解決する方法はありますか?

編集

サーバーからいくつかのコードを追加します。

これは、たとえば、私が選択する方法です:

MySqlDataReader msdr;

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(); 

これが私が削除する方法です:

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();

これは私が挿入する方法です:

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", item.babysitterid);
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;
4

2 に答える 2