0

asp サーバーでは、以下に示すようExecuteScalarに、実行後に SQL Server のエラーが発生します。エラーは時々発生するだけで、常に表示されるわけではありません。では、なぜこのエラーが発生するのか知っている人はいますか? それを解決する方法は?ExecuteReaderExecuteNonQuery

System.Data.SqlClient.SqlException: サーバーに要求を送信するときに、トランスポート レベルのエラーが発生しました。(プロバイダー: TCP プロバイダー、エラー: 0 - 既存の接続がリモート ホストによって強制的に閉じられました。)

System.Data.SqlClient.SqlConnection.OnError (SqlException 例外、ブール型 breakConnection)
で System.Data.SqlClient.SqlInternalConnection.OnError (SqlException 例外、ブール型 breakConnection)
で System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject stateObj)
で.Data.SqlClient.TdsParserStateObject.WriteSni()
で System.Data.SqlClient.TdsParserStateObject.WritePacket(Byte flushMode)
で System.Data.SqlClient.TdsParserStateObject.ExecuteFlush()
で System.Data.SqlClient.TdsParser.TdsExecuteSQLBatch(String text, Int32 タイムアウト、SqlNotificationRequest、notificationRequest、TdsParserStateObject (状態オブジェクト)
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior、RunBehavior runBehavior、ブール値 returnStream、ブール値 async)
で System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior、RunBehavior runBehavior、ブール値 returnStream、文字列メソッド、DbAsyncResult 結果)
でSystem.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior、RunBehavior runBehavior、Boolean returnStream、String メソッド)
で System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior 動作、String メソッド)
で System.Data.SqlClient.SqlCommand.ExecuteReader( )
WinMsg.Page_Load(オブジェクト送信者、EventArgs e) で

4

1 に答える 1

0

あなたは a に言及しましたDataReader: 正しく閉じたことを確認してください。まだ開いていると思われ、それ以上のデータベース操作を妨げています。

MSDNから:

SqlDataReader が使用されている間、関連付けられた SqlConnection は SqlDataReader を提供するためにビジーです。この状態の間、SqlConnection を閉じる以外の操作は実行できません。これは、SqlDataReader.Close メソッドを呼び出すまで当てはまります。CommandBehavior を CloseConnection に設定して SqlDataReader を作成した場合、SqlDataReader を閉じると、接続が自動的に閉じられます。

またSqlConnection、使用後は必ず密閉し、適切に廃棄してください。

于 2013-03-15T07:03:53.987 に答える