コード例 #1
0
        private static Collection <DatabaseModel> GetDatabaseItems(object obj)
        {
            MsSql2008FeatureLayerInfo tempParam = (MsSql2008FeatureLayerInfo)obj;

            Collection <DatabaseModel> result = new Collection <DatabaseModel>();

            foreach (var dbName in tempParam.CollectDatabaseFromServer())
            {
                DatabaseModel dbItem = new DatabaseModel(dbName);
                try
                {
                    Collection <string> tableNames = tempParam.CollectTablesFromDatabase(dbName);
                    Collection <string> viewNames  = tempParam.CollectViewsFromDatabase(dbName);

                    foreach (var item in tableNames)
                    {
                        TableModel model  = new TableModel(item);
                        string     schema = string.Empty;
                        int        index  = item.IndexOf(".", StringComparison.Ordinal);
                        if (index != -1)
                        {
                            schema = item.Substring(0, index);
                        }
                        model.SchemaName = schema;
                        dbItem.TableModels.Add(model);
                    }

                    foreach (var item in viewNames)
                    {
                        TableModel model = new TableModel(item);
                        model.IsView = true;
                        string schema = string.Empty;
                        int    index  = item.IndexOf(".", StringComparison.Ordinal);
                        if (index != -1)
                        {
                            schema = item.Substring(0, index);
                        }
                        model.SchemaName = schema;
                        dbItem.TableModels.Add(model);
                    }
                }
                catch
                { }

                result.Add(dbItem);
            }

            return(result);
        }