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); }