/// <summary> /// Запись параметра в файл настроек /// </summary> /// <param name="KeyName">Имя параметра</param> /// <param name="KeyValue">Значение параметра</param> /// <returns></returns> public bool SetSetting(string KeyName, string KeyValue) { try { KeyValue = Encrypt(KeyValue); LoadXml(); System.Data.DataSet ds = new System.Data.DataSet(); ds.ReadXml(_settingsXML); if (ds.Tables.Count == 0 || ds.Tables["SettingString"].Select("KeyName='" + KeyName + "'").Length == 0) { // Добавление параметра в файл, если его не существует AddSettingToXml(KeyName, KeyValue); } else { // Редактировать параметр в файле SettingsXmlDoc.SelectSingleNode("//root/SettingString[@KeyName='" + KeyName + "']").Attributes["KeyValue"].Value = KeyValue; SettingsXmlDoc.Save(_settingsXML); } } catch (Exception) { return(false); } return(true); }
/// <summary> /// Записать таблицу /// </summary> /// <param name="dt">Таблица, данные которой нужно сохранить</param> /// <param name="elementName">Наименование XML-элемента</param> /// <returns></returns> public bool SaveDataTable(DataTable dt, string elementName) { //System.Xml.XmlElement xmlElement = SettingsXmlDoc.CreateElement(elementName); LoadXml(); XmlNode rootNode = SettingsXmlDoc.SelectSingleNode("//root"); XmlNode childElement; if (SettingsXmlDoc.SelectNodes("//root/" + elementName).Count > 0) { childElement = SettingsXmlDoc.SelectSingleNode("//root/" + elementName); childElement.RemoveAll(); } else { childElement = SettingsXmlDoc.CreateNode(XmlNodeType.Element, elementName, null); } foreach (DataRow row in dt.Rows) { XmlElement rowElement = SettingsXmlDoc.CreateElement("row"); foreach (DataColumn col in dt.Columns) { //switch (col.DataType) //{ // case System.Int16: // rowElement.SetAttribute(col.ColumnName, (string)row[col]); // break; //} rowElement.SetAttribute(col.ColumnName, Encrypt(Convert.ToString(row[col]))); } childElement.AppendChild(rowElement); } rootNode.AppendChild(childElement); SettingsXmlDoc.Save(_settingsXML); return(true); }
/// <summary> /// Добавить строку в файл настроек /// </summary> /// <param name="KeyName">Наименование настройки</param> /// <param name="KeyValue">Значение настройки</param> /// <returns>True - успешная запись в файл настроек</returns> private bool AddSettingToXml(string KeyName, string KeyValue) { System.Xml.XmlElement El = SettingsXmlDoc.CreateElement("SettingString"); El.SetAttribute("KeyName", KeyName); El.SetAttribute("KeyValue", KeyValue); El.SetAttribute("UserName", Environment.UserName); SettingsXmlDoc.DocumentElement.AppendChild(El); SettingsXmlDoc.Save(_settingsXML); return(true); }
/// <summary> /// Получить строку из файла настроек /// </summary> /// <param name="KeyName">Имя параметра</param> /// <returns>Значение параметра</returns> public string GetSetting(string KeyName, string defaultValue = "") { try { SettingsXmlDoc.Load(_settingsXML); return(Decrypt(SettingsXmlDoc.SelectSingleNode("//root/SettingString[@KeyName='" + KeyName + "']").Attributes["KeyValue"].Value)); } catch (Exception) { return(defaultValue); } }
private void LoadXml() { if (!System.IO.File.Exists(_settingsXML)) { // Создать файл настроек SettingsXmlDoc.LoadXml("<root></root>"); SettingsXmlDoc.Save(_settingsXML); } else { SettingsXmlDoc.Load(_settingsXML); } }
/// <summary> /// Выбирает список узлов, соответствующий выражению XPath /// </summary> /// <param name="xpath">Выражение XPath</param> /// <returns></returns> public XmlNodeList SelectNodes(string xpath) { return(SettingsXmlDoc.SelectNodes(xpath)); }