Beispiel #1
0
        /// <summary>
        /// 从文本文件中反射数据库连接
        /// </summary>
        /// <param name="fileName">文本文件位置</param>
        /// <param name="text">数据描述文本</param>
        /// <returns></returns>
        public static DataReadAndWrite GetData(string fileName, string text)
        {
            DataReadAndWrite result  = null;
            XmlNode          tmpNode = All.Class.XmlHelp.GetXmlNode(fileName);

            if (tmpNode == null)
            {
                return(result);
            }
            foreach (XmlNode tmpConn in tmpNode.ChildNodes)
            {
                if (tmpConn.NodeType != XmlNodeType.Element)
                {
                    continue;//注释等其他东西忽略
                }
                Dictionary <string, string> connAttribute = All.Class.XmlHelp.GetAttribute(tmpConn);
                if (connAttribute == null)
                {
                    All.Class.Error.Add("当前xml文件不能正确的解析");
                    continue;//解析有错误
                }
                if (connAttribute.ContainsKey("Name") && connAttribute["Name"].ToUpper() == text.ToUpper())
                {
                    try
                    {
                        Dictionary <string, string> connStr = All.Class.XmlHelp.GetInner(tmpConn);

                        All.Class.Reflex <DataReadAndWrite> r = new All.Class.Reflex <DataReadAndWrite>("All", connAttribute["Class"]);
                        result = (DataReadAndWrite)r.Get();
                        if (result != null && connAttribute.ContainsKey("Text"))
                        {
                            result.Text = connAttribute["Text"];

                            if (!result.Login(connStr))
                            {
                                All.Class.Error.Add(string.Format("{0}:数据库登陆失败,请检查数据库连接", result.Text), Environment.StackTrace);
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        All.Class.Error.Add(e);
                    }
                    break;
                }
            }
            return(result);
        }
        /// <summary>
        /// 从文本文件中反射数据库连接
        /// </summary>
        /// <param name="fileName">文本文件位置</param>
        /// <param name="text">数据描述文本</param>
        /// <returns></returns>
        public static DataReadAndWrite GetData(string fileName, string text)
        {
            All.Class.DataReadAndWrite result = null;
            XmlNode tmpNode = All.Class.XmlHelp.GetXmlNode(fileName);

            foreach (XmlNode tmpConn in tmpNode.ChildNodes)
            {
                if (tmpConn.NodeType != XmlNodeType.Element)
                {
                    continue;
                }
                Dictionary <string, string> connAttribute = All.Class.XmlHelp.GetAttribute(tmpConn);
                if (connAttribute.ContainsKey("Name") && connAttribute["Name"] == text)
                {
                    try
                    {
                        Dictionary <string, string> connStr = All.Class.XmlHelp.GetInner(tmpConn);

                        All.Class.Reflex <All.Class.DataReadAndWrite> r = new All.Class.Reflex <All.Class.DataReadAndWrite>("All", connAttribute["Class"]);
                        result = (All.Class.DataReadAndWrite)r.Get();
                        if (result != null && connAttribute.ContainsKey("Text"))
                        {
                            result.Text = connAttribute["Text"];
                        }
                        if (!result.Login(connStr["Address"], connStr["DataBase"], connStr["UserName"], connStr["Password"]))
                        {
                            All.Class.Error.Add(string.Format("{0}:数据库登陆失败,请检查数据库连接", result.Text), Environment.StackTrace);
                        }
                    }
                    catch (Exception e)
                    {
                        All.Class.Error.Add(e);
                    }
                    break;
                }
            }
            return(result);
        }