예제 #1
0
        public void Filter(string variableName, Operator @operator, bool negation, IEnumerable <string> values)
        {
            if (!variables.Contains(variableName))
            {
                throw new ArgumentOutOfRangeException("variableName");
            }

            AssignCompareMultiple(@operator);

            var index = variables.IndexOf(variableName);

            DataTableReader dataReader   = null;
            var             filteredRows = Content.AsEnumerable().Where(row => compareMultiple(row[index].ToString(), values) != negation);

            if (filteredRows.Count() > 0)
            {
                var filteredTable = filteredRows.CopyToDataTable();
                dataReader = filteredTable.CreateDataReader();
            }

            Content.Clear();
            if (dataReader != null)
            {
                Content.Load(dataReader, LoadOption.PreserveChanges);
            }

            Content.AcceptChanges();
        }
예제 #2
0
        public void Replace(string columnName, string newValue)
        {
            if (!variables.Contains(columnName))
            {
                throw new ArgumentException(string.Format("No column named '{0}' has been found.", columnName));
            }

            var index = variables.IndexOf(columnName);

            foreach (DataRow row in Content.Rows)
            {
                row[index] = newValue;
            }

            Content.AcceptChanges();
        }
예제 #3
0
        public void FilterDistinct()
        {
            DataTableReader dataReader   = null;
            var             distinctRows = Content.AsEnumerable().Distinct(System.Data.DataRowComparer.Default);

            if (distinctRows.Count() > 0)
            {
                var distinctTable = distinctRows.CopyToDataTable();
                dataReader = distinctTable.CreateDataReader();
            }
            Content.Clear();
            if (dataReader != null)
            {
                Content.Load(dataReader, LoadOption.PreserveChanges);
            }
            Content.AcceptChanges();
        }
예제 #4
0
        public void Replace(string columnName, string newValue, Operator @operator, bool negation, IEnumerable <string> values)
        {
            if (!variables.Contains(columnName))
            {
                throw new ArgumentException(string.Format("No column named '{0}' has been found.", columnName));
            }

            AssignCompareMultiple(@operator);

            var index = variables.IndexOf(columnName);

            foreach (DataRow row in Content.Rows)
            {
                if (compareMultiple(row[index].ToString(), values) != negation)
                {
                    row[index] = newValue;
                }
            }

            Content.AcceptChanges();
        }