private void PopulateCollection(MiningModel parentModel) { this.hashAttrIDs = new Hashtable(); AdomdCommand adomdCommand = new AdomdCommand(); adomdCommand.Connection = parentModel.ParentConnection; int num = 0; MiningModelColumnCollection.Enumerator enumerator = parentModel.Columns.GetEnumerator(); while (enumerator.MoveNext()) { MiningModelColumn current = enumerator.Current; if (current.IsTable) { MiningModelColumnCollection.Enumerator enumerator2 = current.Columns.GetEnumerator(); while (enumerator2.MoveNext()) { MiningModelColumn arg_54_0 = enumerator2.Current; num++; } } } adomdCommand.CommandText = string.Format(CultureInfo.InvariantCulture, MiningAttributeCollection.attribQueryStmt, new object[] { parentModel.Name }); AdomdDataReader adomdDataReader = adomdCommand.ExecuteReader(CommandBehavior.SequentialAccess); while (adomdDataReader.Read()) { int @int = adomdDataReader.GetInt32(MiningAttributeCollection.attIdIndex); string @string = adomdDataReader.GetString(MiningAttributeCollection.nameIndex); string string2 = adomdDataReader.GetString(MiningAttributeCollection.shortNameIndex); bool boolean = adomdDataReader.GetBoolean(MiningAttributeCollection.isInputIndex); bool boolean2 = adomdDataReader.GetBoolean(MiningAttributeCollection.isPredictableIndex); int int2 = adomdDataReader.GetInt32(MiningAttributeCollection.featureSelectionIndex); string string3 = adomdDataReader.GetString(MiningAttributeCollection.keyColumnIndex); string string4 = adomdDataReader.GetString(MiningAttributeCollection.valueColumnIndex); MiningAttribute miningAttribute = new MiningAttribute(parentModel); miningAttribute.attributeID = @int; miningAttribute.name = @string; miningAttribute.shortName = string2; miningAttribute.isInput = boolean; miningAttribute.isPredictable = boolean2; miningAttribute.featureSelection = (MiningFeatureSelection)int2; miningAttribute.keyColumn = this.ModelColumnFromName(string3, parentModel); miningAttribute.valueColumn = this.ModelColumnFromName(string4, parentModel); this.hashAttrIDs.Add(miningAttribute.name, miningAttribute.attributeID); this.arAttributesInternal.Add(miningAttribute); } adomdDataReader.Close(); adomdCommand.Dispose(); }
public void Close() { if (_type == AdomdType.AnalysisServices) { _reader.Close(); } else { ExcelAdoMdConnections.VoidDelegate f = delegate { _readerExcel.Close(); }; f(); } }
internal MiningValueCollectionInternal(MiningModelColumn column) { this.internalObjectCollection = new ArrayList(); if (column.IsTable) { return; } AdomdCommand adomdCommand = new AdomdCommand(); adomdCommand.CommandText = string.Format(CultureInfo.InvariantCulture, "SELECT DISTINCT {0} FROM [{1}]", new object[] { column.FullyQualifiedName, column.ParentMiningModel.Name }); adomdCommand.Connection = column.ParentMiningModel.ParentConnection; AdomdDataReader adomdDataReader = adomdCommand.ExecuteReader(); int num = -1; while (adomdDataReader.Read()) { num++; object objValue = adomdDataReader[0]; string content = column.Content; MiningValueType valueType = MiningValueType.Missing; if (num == 0 && content.IndexOf("key", StringComparison.OrdinalIgnoreCase) < 0) { valueType = MiningValueType.Missing; } else if (string.Compare(content, "discrete", StringComparison.OrdinalIgnoreCase) == 0 || string.Compare(content, "key", StringComparison.OrdinalIgnoreCase) == 0) { valueType = MiningValueType.Discrete; } else if (content.IndexOf("discretized", StringComparison.OrdinalIgnoreCase) == 0) { valueType = MiningValueType.Discretized; } else if (string.Compare(content, "continuous", StringComparison.OrdinalIgnoreCase) == 0) { valueType = MiningValueType.Continuous; } MiningValue newValue = new MiningValue(valueType, num, objValue); this.Add(newValue); } adomdDataReader.Close(); adomdDataReader.Dispose(); adomdCommand.Dispose(); }