コード例 #1
0
            public NetworkNodeType GetNodeType(int nodeId)
            {
                NodeTypesPage page = LoadNodeTypePage(NetworkObjectSerializer.Page(nodeId));

                if (page == null)
                {
                    return(NetworkNodeType.Unknown);
                }

                return(page.GetNodeType(nodeId));
            }
コード例 #2
0
            private NodeTypesPage LoadNodeTypePage(int page)
            {
                lock (_thisLock)
                {
                    if (_nodeTypePages.ContainsKey(page))
                    {
                        return(_nodeTypePages[page]);
                    }

                    if (_dbfactory != null)
                    {
                        try
                        {
                            int from = page * NetworkObjectSerializer.PageSize + 1;
                            int to   = (page + 1) * NetworkObjectSerializer.PageSize;

                            using (DbConnection connection = _dbfactory.CreateConnection())
                            {
                                connection.ConnectionString = _connectionString;
                                DbCommand command = _dbfactory.CreateCommand();
                                command.Connection  = connection;
                                command.CommandText = "select " + _dbNames.DbColName("FDB_OID") + "," + _dbNames.DbColName("NODETYPE") + " from " + _nodeTableName + " where " + _dbNames.DbColName("NODETYPE") + ">0 and " + _dbNames.DbColName("FDB_OID") + ">=" + from + " and " + _dbNames.DbColName("FDB_OID") + "<=" + to;
                                connection.Open();

                                DbDataAdapter adapter = _dbfactory.CreateDataAdapter();
                                adapter.SelectCommand = command;
                                DataTable tab = new DataTable();
                                adapter.Fill(tab);

                                NodeTypesPage nodeTypesPage = new NodeTypesPage();
                                foreach (DataRow row in tab.Rows)
                                {
                                    nodeTypesPage.Add(Convert.ToInt32(row["FDB_OID"]), (NetworkNodeType)Convert.ToInt32(row["NODETYPE"]));
                                }
                                connection.Close();
                                _nodeTypePages.Add(page, nodeTypesPage);

                                return(nodeTypesPage);
                            }
                        }
                        catch { }
                    }
                    return(null);
                }
            }