예제 #1
0
        /// <summary>
        /// 获取配置文件中所有表的信息
        /// </summary>
        /// <param name="node"></param>
        /// <returns></returns>
        public DataSourseTableInfo[] GetDataSourseTableInfo(string node)
        {
            XmlNode     xns       = this._xmldoc.SelectSingleNode(node);
            XmlNodeList dbnodelst = xns.ChildNodes;

            if (dbnodelst.Count <= 0)
            {
                return(null);
            }
            var tableInfos = new List <DataSourseTableInfo>();

            foreach (XmlNode dbNode in dbnodelst)
            {
                var         xe           = (XmlElement)dbNode;
                string[]    dbInfo       = this.GetDbInfo(xe);
                var         dbtype       = (DbType)int.Parse(dbInfo[1].Trim());
                XmlNodeList tablenodelst = xe.ChildNodes;
                if (tablenodelst.Count <= 0)
                {
                    continue;
                }
                foreach (XmlNode tablenode in tablenodelst)
                {
                    var tablexn = (XmlElement)tablenode;
                    DataSourseTableInfo tableInfo = this.GetTableInfo(tablexn);
                    tableInfo.DataBaseName     = dbInfo[0];
                    tableInfo.DbType           = dbtype;
                    tableInfo.ConnectionString = dbInfo[2];
                    tableInfos.Add(tableInfo);
                }
            }
            return(tableInfos.ToArray());
        }
예제 #2
0
        /// <summary>
        /// 获取表信息
        /// </summary>
        /// <param name="tablexn"></param>
        /// <returns></returns>
        private DataSourseTableInfo GetTableInfo(XmlElement tablexn)
        {
            int datacont = 0;

            string[][] columses  = this.GetColums(tablexn.ChildNodes, out datacont);
            var        tableInfo = new DataSourseTableInfo
            {
                TableName      = tablexn.GetAttribute("name"),
                Colums         = columses[0],
                StandardFields = columses[1],
                Filter         = tablexn.GetAttribute("filter"),
                Type           = uint.Parse(tablexn.GetAttribute("protocolType")),
                DataCount      = datacont
            };

            return(tableInfo);
        }
예제 #3
0
 public TableDataProvider(DataSourseTableInfo dmi, ISqlHelper helper)
 {
     this.Meta       = dmi;
     this._sqlHelper = helper;
     this.Remainder  = 0;
 }