protected void Button1_Click(object sender, EventArgs e)
{
    // Pobranie ścieżki bieżącego żądania
    string webPath = Request.ApplicationPath;
    
    // Wyszukanie ostatniego ukośnika
    webPath = webPath.Substring(0, webPath.LastIndexOf('/'));

    // Pobranie obiektu konfiguracji związanego z bieżącym żądaniem
    Configuration config =
    System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(webPath);

    // Utworzenie nowego łańcucha połączenia na podstawie danych pól edycyjnych 
    ConnectionStringSettings newConnSetting = new 
    ConnectionStringSettings(txtName.Text, txtValue.Text, txtProvider.Text);

    try
    {
        // Dodanie łańcucha połączenia do kolekcji
        config.ConnectionStrings.ConnectionStrings.Add(newConnSetting);
        
        // Zapisanie zmian
        config.Save();
    }
    catch (ConfigurationErrorsException cEx)
    {
        lblStatus.Text = "Status: " + cEx.ToString();
    }
    catch (System.UnauthorizedAccessException uEx)
    {
        // Proces ASP.NET musi mieć prawa odczytu i zapisu danych w katalogu
        lblStatus.Text = "Status: " + "Proces ASP.NET musi mieć prawa " + 
           "odczytu i zapisu w katalogu";
    }
    catch (Exception eEx)
    {
        lblStatus.Text = "Status: " + eEx.ToString();
    }

    // Odświeżenie łańcuchów połączeń w kontrolce listy.
    ShowConnectionStrings();
}
