Verwendung von SqlConnection.ClearAllPools () in c #

Mir ist aufgefallen, dass mein Code Fehler aufzeigtsqlWrite.ExecuteNonQuery(); nach dem Ausführen von 200 Insert-Abfragen in wenigen Sekunden. Das habe ich mir immer gedachtusing stellt sicher, dass die Ressourcen ordnungsgemäß wiederverwendet werden und nichts unternommen werden muss. Dies ist das erste Mal, dass ich diesen Fehler erhalte und seit fast 3 Jahren beschäftige ich mich mit sql / c # und mache verschiedene Dinge.

<code>using (SqlConnection varConnection = Locale.sqlConnectOneTime(Locale.sqlDataConnectionDetails)) 
{
    using (var sqlWrite = new SqlCommand(preparedCommand, varConnection)) 
    {
        sqlWrite.Parameters.AddWithValue("@var_agr_fname", var_agr_fname == "" ? (object) DBNull.Value : var_agr_fname);
        sqlWrite.ExecuteNonQuery();
    }
}


public static SqlConnection sqlConnectOneTime(string varSqlConnectionDetails)
{
    var sqlConnection = new SqlConnection(varSqlConnectionDetails);
    try
    {
        sqlConnection.Open();
    }
    catch
    {
        DialogResult result = MessageBox.Show(new Form {TopMost = true},
                                              "Błąd połączenia z bazą danych. Czy chcesz spróbować nawiązac połączenie ponownie?",
                                              "Błąd połączenia (000001)",
                                              MessageBoxButtons.YesNo,
                                              MessageBoxIcon.Stop);
        if (result == DialogResult.No)
        {
            if (Application.MessageLoop)
            {
                Application.Exit(); // Use this since we are a WinForms app
            }
            else
            {
                Environment.Exit(1); // Use this since we are a console app
            }
        }
        else
        {
            sqlConnection = sqlConnectOneTime(varSqlConnectionDetails);
        }
    }
    return sqlConnection;
}
</code>

Fehlermeldung:A transport-level error has occurred when sending the request to the server. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.)

Beratung fürdieser Fehler Ich sollte verwendenSqlConnection.ClearAllPools(); um sicherzustellen, dass die Verbindungen zurückgesetzt oder ordnungsgemäß verworfen werden. Ich kann es also benutzen, aber die Frage ist, wo und wann ich es benutzen soll? Woher wissen, ob das Limit überschritten wird? Wo ist die Grenze? bei 50/150/200? oder sollte ich es jedes Mal in einer Schleife verwenden?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage