Ejemplo n.º 1
0
        private DataTable GetNodesTableFromDb(string parentKey)
        {
            //string treeFirstLevelSql = "SELECT {0} AS [title], [{1}] AS [key] FROM [{2}] WHERE [{3}] {4}";
            SqlSchema sqlSchema         = GetSqlSchema(view.Database.SqlProduct);
            string    treeFirstLevelSql = sqlSchema.GetTreeFirstLevelSql();

            if (string.IsNullOrEmpty(parentKey))
            {
                parentKey = "IS NULL";
                //parentKey = "= 0";
            }
            else
            {
                parentKey = "= '" + parentKey + "'";
            }

            if (!string.IsNullOrEmpty(view.PermanentFilter))
            {
                treeFirstLevelSql += " and " + view.GetPermanentFilter() + " ";
            }

            //string query = string.Format(treeFirstLevelSql, view.DisplayField.IsCalculated ? view.DisplayField.Formula : ("[" + view.DisplayField.Name + "]"), view.PrimaryKeyFileds[0].DatabaseNames, view.DataTable.TableName, view.Fields[view.TreeRelatedFieldName].DatabaseNames, parentKey);

            //DataAccess.SqlAccess da = new DataAccess.SqlAccess();
            string query = string.Format(treeFirstLevelSql, view.DisplayField.IsCalculated ? view.DisplayField.Formula : sqlSchema.sqlTextBuilder.EscapeDbObject(view.DisplayField.Name), view.PrimaryKeyFileds[0].DatabaseNames, view.DataTable.TableName, view.Fields[view.TreeRelatedFieldName].DatabaseNames, parentKey);

            DataAccess.IDataTableAccess da = DataAccess.DataAccessHelper.GetDataTableAccess(view);

            DataTable dtNodes = da.ExecuteTable(view.Database.ConnectionString, query, null, CommandType.Text);

            return(dtNodes);
        }