2017-03-02 1 views
1

J'ai créé une application qui peut créer des chaînes de connexion et éditer des chaînes de connexion.Supprimer l'ancienne chaîne de connexion

doc.Load(Path.Combine(path, SelectConfigComboBox.SelectedItem.ToString(), "app.config")); 
XmlNode xNode = doc.CreateNode(XmlNodeType.Element, "add", ""); 
XmlAttribute xName = doc.CreateAttribute("name"); 
XmlAttribute xconnectionString = doc.CreateAttribute("connectionString"); 
xName.Value = NewKeyTextBox.Text; 

xconnectionString.Value = string.Format("data source={0};persist security info={1};initial catalog={2};USER ID={3};password={4}", NewValueTextBox.Text, SecurityInfocomboBox.Text, CatalogcomboBox.Text, UserIDtextBox.Text, PasswordtextBox.Text); 

xNode.Attributes.Append(xName); 
xNode.Attributes.Append(xconnectionString); 
doc.GetElementsByTagName("connectionStrings")[0].InsertAfter(xNode, 
doc.GetElementsByTagName("connectionStrings")[0].LastChild); 

doc.Save(Path.Combine(path, SelectConfigComboBox.SelectedItem.ToString(), "app.config")); 

Avec ce code, j'entre une nouvelle chaîneConnexion. Quand je veux éditer la chaîne de connexion, j'en ajouterai une nouvelle sans supprimer l'autre. Comment puis-je supprimer l'ancien avant d'ajouter le nouveau?

Répondre

1

Vous pouvez accéder à app.config à l'aide de "ConfigurationManager" et mettre à jour les valeurs existantes au lieu de les supprimer. Référez-vous au code suivant:

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
config.AppSettings.Settings["test"].Value = "blah";  
config.Save(ConfigurationSaveMode.Modified); 
ConfigurationManager.RefreshSection("appSettings"); 
+0

Merci de votre réponse, dois-je ajouter ce code entre doc.load et doc.save? –

+0

Non, essayez le code ci-dessus (sans votre code), j'espère que cela vous aidera. – imsome1

+0

J'ai essayé votre code mais il me donne une ligne rouge sous chaque ligne avec Configuration _Le type ou nom d'espace de nommage "Configuration" n'a pas pu être trouvé –