コード例 #1
0
ファイル: SettingsXml.cs プロジェクト: viktortat/faq_net
        /// <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);
        }
コード例 #2
0
ファイル: SettingsXml.cs プロジェクト: viktortat/faq_net
        /// <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);
        }
コード例 #3
0
ファイル: SettingsXml.cs プロジェクト: viktortat/faq_net
 /// <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);
 }
コード例 #4
0
ファイル: SettingsXml.cs プロジェクト: viktortat/faq_net
 /// <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);
     }
 }
コード例 #5
0
ファイル: SettingsXml.cs プロジェクト: viktortat/faq_net
 private void LoadXml()
 {
     if (!System.IO.File.Exists(_settingsXML))
     {
         // Создать файл настроек
         SettingsXmlDoc.LoadXml("<root></root>");
         SettingsXmlDoc.Save(_settingsXML);
     }
     else
     {
         SettingsXmlDoc.Load(_settingsXML);
     }
 }
コード例 #6
0
ファイル: SettingsXml.cs プロジェクト: viktortat/faq_net
 /// <summary>
 /// Выбирает список узлов, соответствующий выражению XPath
 /// </summary>
 /// <param name="xpath">Выражение XPath</param>
 /// <returns></returns>
 public XmlNodeList SelectNodes(string xpath)
 {
     return(SettingsXmlDoc.SelectNodes(xpath));
 }