GetColumnError() public method

Gets the error description of the specified .
public GetColumnError ( DataColumn column ) : string
column DataColumn
return string
Exemplo n.º 1
0
        protected string GetCompareText(List<ColumnType> columnTypes, DataRow dataRow, int i)
        {
            if (string.IsNullOrEmpty(dataRow.GetColumnError(i)))
                return string.Empty;

            var factory = new CellFormatterFactory();
            var formatter = factory.GetObject(columnTypes[i]);

            return formatter.Format(dataRow.GetColumnError(i));
        }
        private void GenerateTableErrors(DataTable table)
        {
            int count = table.Rows.Count;
            int num3  = table.Columns.Count;

            if (count > 0)
            {
                for (int i = 0; i < count; i++)
                {
                    bool    flag   = false;
                    DataRow row    = table.Rows[i];
                    string  prefix = (table.Namespace.Length != 0) ? table.Prefix : string.Empty;
                    if (row.HasErrors && (row.RowError.Length > 0))
                    {
                        if (!this.fErrors)
                        {
                            this._xmlw.WriteStartElement("diffgr", "errors", "urn:schemas-microsoft-com:xml-diffgram-v1");
                            this.fErrors = true;
                        }
                        this._xmlw.WriteStartElement(prefix, row.Table.EncodedTableName, row.Table.Namespace);
                        this._xmlw.WriteAttributeString("diffgr", "id", "urn:schemas-microsoft-com:xml-diffgram-v1", row.Table.TableName + row.rowID.ToString(CultureInfo.InvariantCulture));
                        this._xmlw.WriteAttributeString("diffgr", "Error", "urn:schemas-microsoft-com:xml-diffgram-v1", row.RowError);
                        flag = true;
                    }
                    if (num3 > 0)
                    {
                        for (int j = 0; j < num3; j++)
                        {
                            DataColumn column      = table.Columns[j];
                            string     columnError = row.GetColumnError(column);
                            string     str3        = (column.Namespace.Length != 0) ? column.Prefix : string.Empty;
                            if ((columnError != null) && (columnError.Length != 0))
                            {
                                if (!flag)
                                {
                                    if (!this.fErrors)
                                    {
                                        this._xmlw.WriteStartElement("diffgr", "errors", "urn:schemas-microsoft-com:xml-diffgram-v1");
                                        this.fErrors = true;
                                    }
                                    this._xmlw.WriteStartElement(prefix, row.Table.EncodedTableName, row.Table.Namespace);
                                    this._xmlw.WriteAttributeString("diffgr", "id", "urn:schemas-microsoft-com:xml-diffgram-v1", row.Table.TableName + row.rowID.ToString(CultureInfo.InvariantCulture));
                                    flag = true;
                                }
                                this._xmlw.WriteStartElement(str3, column.EncodedColumnName, column.Namespace);
                                this._xmlw.WriteAttributeString("diffgr", "Error", "urn:schemas-microsoft-com:xml-diffgram-v1", columnError);
                                this._xmlw.WriteEndElement();
                            }
                        }
                        if (flag)
                        {
                            this._xmlw.WriteEndElement();
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// Procesa los mensajes de error en cada columna de la row y los carga en las colecciones
 /// </summary>
 /// <param name="row"></param>
 private void _ProcesarErrores(System.Data.DataRow row)
 {
     if (row.HasErrors)
     {
         foreach (DataColumn dc in row.GetColumnsInError())
         {
             string tabla   = row.Table.TableName;
             string campo   = dc.ColumnName;
             string mensaje = row.GetColumnError(dc);
             _detailsErrors.Add(new ItemDatasetError(tabla, campo, mensaje));
         }
         string tablarow   = row.Table.TableName;
         string camporow   = "N/A";
         string mensajerow = row.RowError;
         _globalErrors.Add(new ItemDatasetError(tablarow, camporow, mensajerow));
     }
 }
Exemplo n.º 4
0
        internal static bool RowHasErrors(DataRow row)
        {
            int count = row.Table.Columns.Count;

            if (row.HasErrors && (row.RowError.Length > 0))
            {
                return(true);
            }
            for (int i = 0; i < count; i++)
            {
                DataColumn column      = row.Table.Columns[i];
                string     columnError = row.GetColumnError(column);
                if ((columnError != null) && (columnError.Length != 0))
                {
                    return(true);
                }
            }
            return(false);
        }
Exemplo n.º 5
0
        internal DataRow MergeRow(DataRow row, DataRow targetRow, bool preserveChanges, Index idxSearch) {
             if (targetRow == null) {
                targetRow = this.NewEmptyRow();
                targetRow.oldRecord = recordManager.ImportRecord(row.Table, row.oldRecord);
                targetRow.newRecord = targetRow.oldRecord;
                if(row.oldRecord != row.newRecord) {
                    targetRow.newRecord = recordManager.ImportRecord(row.Table, row.newRecord);
                }
                InsertRow(targetRow, -1);
            }
            else {
                // SQLBU 500789: Record Manager corruption during Merge when target row in edit state
                // the newRecord would be freed and overwrite tempRecord (which became the newRecord)
                // this would leave the DataRow referencing a freed record and leaking memory for the now lost record
                int proposedRecord = targetRow.tempRecord; // by saving off the tempRecord, EndEdit won't free newRecord
                targetRow.tempRecord = -1;
                try {
                    DataRowState saveRowState = targetRow.RowState;
                    int saveIdxRecord = (saveRowState == DataRowState.Added) ? targetRow.newRecord : saveIdxRecord = targetRow.oldRecord;
                     int newRecord;
                     int oldRecord;
                    if (targetRow.RowState == DataRowState.Unchanged && row.RowState == DataRowState.Unchanged) {
                        // unchanged row merging with unchanged row
                        oldRecord = targetRow.oldRecord;
                        newRecord = (preserveChanges) ? recordManager.CopyRecord(this, oldRecord, -1) : targetRow.newRecord;
                        oldRecord = recordManager.CopyRecord(row.Table, row.oldRecord, targetRow.oldRecord);
                        SetMergeRecords(targetRow, newRecord, oldRecord, DataRowAction.Change);
                    }
                    else if (row.newRecord == -1) {
                        // Incoming row is deleted
                        oldRecord = targetRow.oldRecord;
                        if (preserveChanges) {
                          newRecord = (targetRow.RowState == DataRowState.Unchanged)? recordManager.CopyRecord(this, oldRecord, -1) : targetRow.newRecord;
                        }
                        else
                            newRecord = -1;
                        oldRecord = recordManager.CopyRecord(row.Table, row.oldRecord, oldRecord);

                        // Change index record, need to update index
                        if (saveIdxRecord != ((saveRowState == DataRowState.Added) ? newRecord : oldRecord)) {
                            SetMergeRecords(targetRow, newRecord, oldRecord, (newRecord == -1) ? DataRowAction.Delete : DataRowAction.Change);
                            idxSearch.Reset();
                            saveIdxRecord = ((saveRowState == DataRowState.Added) ? newRecord : oldRecord);
                        } else {
                            SetMergeRecords(targetRow, newRecord, oldRecord, (newRecord == -1) ? DataRowAction.Delete : DataRowAction.Change);
                        }
                    }
                    else {
                        // incoming row is added, modified or unchanged (targetRow is not unchanged)
                        oldRecord = targetRow.oldRecord;
                        newRecord = targetRow.newRecord;
                        if (targetRow.RowState == DataRowState.Unchanged) {
                            newRecord = recordManager.CopyRecord(this, oldRecord, -1);
                        }
                        oldRecord = recordManager.CopyRecord(row.Table, row.oldRecord, oldRecord);

                        if (!preserveChanges) {
                            newRecord = recordManager.CopyRecord(row.Table, row.newRecord, newRecord);
                        }
                        SetMergeRecords(targetRow, newRecord, oldRecord, DataRowAction.Change);
                    }

                    if (saveRowState == DataRowState.Added && targetRow.oldRecord != -1)
                        idxSearch.Reset();
                    Debug.Assert(saveIdxRecord == ((saveRowState == DataRowState.Added) ? targetRow.newRecord : targetRow.oldRecord), "oops, you change index record without noticing it");
                }
                finally {
                    targetRow.tempRecord = proposedRecord;
                }
            }

            // Merge all errors
            if (row.HasErrors) {
                if (targetRow.RowError.Length == 0) {
                    targetRow.RowError = row.RowError;
                } else {
                    targetRow.RowError += " ]:[ " + row.RowError;
                }
                DataColumn[] cols = row.GetColumnsInError();

                for (int i = 0; i < cols.Length; i++) {
                    DataColumn col = targetRow.Table.Columns[cols[i].ColumnName];
                    targetRow.SetColumnError(col, row.GetColumnError(cols[i]));
                }
            }else {
                if (!preserveChanges) {
                    targetRow.ClearErrors();
                }
            }

            return targetRow;
        }
Exemplo n.º 6
0
 public void PutErrorOnDataSet(System.Data.DataRow row)
 {
     _errors.Clear();
     if (_rowProductos.HasErrors)
     {
         System.Data.DataColumn[] columnasConError = row.GetColumnsInError();
         for (int i = 0; columnasConError.Length < i; i++)
         {
             ItemDatasetError error = new ItemDatasetError(((System.Data.DataColumn)columnasConError[i]).Table.TableName, ((System.Data.DataColumn)columnasConError[i]).ColumnName, row.GetColumnError(columnasConError[i]));
             _errors.Add(error);
         }
     }
 }
Exemplo n.º 7
0
        internal static bool RowHasErrors(DataRow row) {
          int colCount = row.Table.Columns.Count;

                if ((row.HasErrors) && (row.RowError.Length > 0))
            return true;

            for (int colNum = 0; colNum < colCount; ++colNum) {
                      DataColumn column = row.Table.Columns[colNum];
                      string error = row.GetColumnError(column);
                      if (error == null || error.Length == 0) {
                          continue;
                      }
              return true;
            }

          return false;
        }
Exemplo n.º 8
0
        /*
            Constructs the surrogate rowerror, columnsInError and columnErrors.
        */
        private void ConvertToSurrogateRowError(DataRow row, int rowIndex)
        {
            Debug.Assert(row != null);
            Debug.Assert(_rowErrors != null);
            Debug.Assert(_colErrors != null);

            if (row.HasErrors)
            {
                _rowErrors.Add(rowIndex, row.RowError);
                DataColumn[] dcArr = row.GetColumnsInError();
                if (dcArr.Length > 0)
                {
                    int[] columnsInError = new int[dcArr.Length];
                    string[] columnErrors = new string[dcArr.Length];
                    for (int i = 0; i < dcArr.Length; i++)
                    {
                        columnsInError[i] = dcArr[i].Ordinal;
                        columnErrors[i] = row.GetColumnError(dcArr[i]);
                    }
                    ArrayList list = new ArrayList();
                    list.Add(columnsInError);
                    list.Add(columnErrors);
                    _colErrors.Add(rowIndex, list);
                }
            }
        }
Exemplo n.º 9
0
 // IDataErrorInfo stuff
 string System.ComponentModel.IDataErrorInfo.this[string colName] {
     get {
         return(row.GetColumnError(colName));
     }
 }
Exemplo n.º 10
0
        public void ImportRow(DataRow row)
        {
            long logScopeId = DataCommonEventSource.Log.EnterScope("<ds.DataTable.ImportRow|API> {0}", ObjectID);
            try
            {
                int oldRecord = -1, newRecord = -1;

                if (row == null)
                {
                    return;
                }

                if (row._oldRecord != -1)
                {
                    oldRecord = _recordManager.ImportRecord(row.Table, row._oldRecord);
                }
                if (row._newRecord != -1)
                {  // row not deleted
                    if (row.RowState != DataRowState.Unchanged)
                    { // not unchanged, it means Added or modified
                        newRecord = _recordManager.ImportRecord(row.Table, row._newRecord);
                    }
                    else
                    {
                        newRecord = oldRecord;
                    }
                }

                if (oldRecord != -1 || newRecord != -1)
                {
                    DataRow targetRow = AddRecords(oldRecord, newRecord);

                    if (row.HasErrors)
                    {
                        targetRow.RowError = row.RowError;

                        DataColumn[] cols = row.GetColumnsInError();

                        for (int i = 0; i < cols.Length; i++)
                        {
                            DataColumn col = targetRow.Table.Columns[cols[i].ColumnName];
                            targetRow.SetColumnError(col, row.GetColumnError(cols[i]));
                        }
                    }
                }
            }
            finally
            {
                DataCommonEventSource.Log.ExitScope(logScopeId);
            }
        }
 internal void CopyRow(DataTable table, DataRow row)
 {
     int oldRecord = -1;
     int newRecord = -1;
     if (row != null)
     {
         if (row.oldRecord != -1)
         {
             oldRecord = table.recordManager.ImportRecord(row.Table, row.oldRecord);
         }
         if (row.newRecord != -1)
         {
             if (row.newRecord != row.oldRecord)
             {
                 newRecord = table.recordManager.ImportRecord(row.Table, row.newRecord);
             }
             else
             {
                 newRecord = oldRecord;
             }
         }
         DataRow row2 = table.AddRecords(oldRecord, newRecord);
         if (row.HasErrors)
         {
             row2.RowError = row.RowError;
             DataColumn[] columnsInError = row.GetColumnsInError();
             for (int i = 0; i < columnsInError.Length; i++)
             {
                 DataColumn column = row2.Table.Columns[columnsInError[i].ColumnName];
                 row2.SetColumnError(column, row.GetColumnError(columnsInError[i]));
             }
         }
     }
 }
 internal DataRow MergeRow(DataRow row, DataRow targetRow, bool preserveChanges, Index idxSearch)
 {
     if (targetRow == null)
     {
         targetRow = this.NewEmptyRow();
         targetRow.oldRecord = this.recordManager.ImportRecord(row.Table, row.oldRecord);
         targetRow.newRecord = targetRow.oldRecord;
         if (row.oldRecord != row.newRecord)
         {
             targetRow.newRecord = this.recordManager.ImportRecord(row.Table, row.newRecord);
         }
         this.InsertRow(targetRow, -1L);
     }
     else
     {
         int tempRecord = targetRow.tempRecord;
         targetRow.tempRecord = -1;
         try
         {
             int oldRecord;
             int newRecord;
             int num4;
             DataRowState rowState = targetRow.RowState;
             num4 = (rowState == DataRowState.Added) ? targetRow.newRecord : (num4 = targetRow.oldRecord);
             if ((targetRow.RowState == DataRowState.Unchanged) && (row.RowState == DataRowState.Unchanged))
             {
                 oldRecord = targetRow.oldRecord;
                 newRecord = preserveChanges ? this.recordManager.CopyRecord(this, oldRecord, -1) : targetRow.newRecord;
                 oldRecord = this.recordManager.CopyRecord(row.Table, row.oldRecord, targetRow.oldRecord);
                 this.SetMergeRecords(targetRow, newRecord, oldRecord, DataRowAction.Change);
             }
             else if (row.newRecord == -1)
             {
                 oldRecord = targetRow.oldRecord;
                 if (preserveChanges)
                 {
                     newRecord = (targetRow.RowState == DataRowState.Unchanged) ? this.recordManager.CopyRecord(this, oldRecord, -1) : targetRow.newRecord;
                 }
                 else
                 {
                     newRecord = -1;
                 }
                 oldRecord = this.recordManager.CopyRecord(row.Table, row.oldRecord, oldRecord);
                 if (num4 != ((rowState == DataRowState.Added) ? newRecord : oldRecord))
                 {
                     this.SetMergeRecords(targetRow, newRecord, oldRecord, (newRecord == -1) ? DataRowAction.Delete : DataRowAction.Change);
                     idxSearch.Reset();
                     num4 = (rowState == DataRowState.Added) ? newRecord : oldRecord;
                 }
                 else
                 {
                     this.SetMergeRecords(targetRow, newRecord, oldRecord, (newRecord == -1) ? DataRowAction.Delete : DataRowAction.Change);
                 }
             }
             else
             {
                 oldRecord = targetRow.oldRecord;
                 newRecord = targetRow.newRecord;
                 if (targetRow.RowState == DataRowState.Unchanged)
                 {
                     newRecord = this.recordManager.CopyRecord(this, oldRecord, -1);
                 }
                 oldRecord = this.recordManager.CopyRecord(row.Table, row.oldRecord, oldRecord);
                 if (!preserveChanges)
                 {
                     newRecord = this.recordManager.CopyRecord(row.Table, row.newRecord, newRecord);
                 }
                 this.SetMergeRecords(targetRow, newRecord, oldRecord, DataRowAction.Change);
             }
             if ((rowState == DataRowState.Added) && (targetRow.oldRecord != -1))
             {
                 idxSearch.Reset();
             }
         }
         finally
         {
             targetRow.tempRecord = tempRecord;
         }
     }
     if (row.HasErrors)
     {
         if (targetRow.RowError.Length == 0)
         {
             targetRow.RowError = row.RowError;
         }
         else
         {
             targetRow.RowError = targetRow.RowError + " ]:[ " + row.RowError;
         }
         DataColumn[] columnsInError = row.GetColumnsInError();
         for (int i = 0; i < columnsInError.Length; i++)
         {
             DataColumn column = targetRow.Table.Columns[columnsInError[i].ColumnName];
             targetRow.SetColumnError(column, row.GetColumnError(columnsInError[i]));
         }
         return targetRow;
     }
     if (!preserveChanges)
     {
         targetRow.ClearErrors();
     }
     return targetRow;
 }
 public void ImportRow(DataRow row)
 {
     IntPtr ptr;
     Bid.ScopeEnter(out ptr, "<ds.DataTable.ImportRow|API> %d#\n", this.ObjectID);
     try
     {
         int oldRecord = -1;
         int newRecord = -1;
         if (row != null)
         {
             if (row.oldRecord != -1)
             {
                 oldRecord = this.recordManager.ImportRecord(row.Table, row.oldRecord);
             }
             if (row.newRecord != -1)
             {
                 if (row.RowState != DataRowState.Unchanged)
                 {
                     newRecord = this.recordManager.ImportRecord(row.Table, row.newRecord);
                 }
                 else
                 {
                     newRecord = oldRecord;
                 }
             }
             if ((oldRecord != -1) || (newRecord != -1))
             {
                 DataRow row2 = this.AddRecords(oldRecord, newRecord);
                 if (row.HasErrors)
                 {
                     row2.RowError = row.RowError;
                     DataColumn[] columnsInError = row.GetColumnsInError();
                     for (int i = 0; i < columnsInError.Length; i++)
                     {
                         DataColumn column = row2.Table.Columns[columnsInError[i].ColumnName];
                         row2.SetColumnError(column, row.GetColumnError(columnsInError[i]));
                     }
                 }
             }
         }
     }
     finally
     {
         Bid.ScopeLeave(ref ptr);
     }
 }
Exemplo n.º 14
0
        internal void CopyRow(DataTable table, DataRow row)
        {
            int oldRecord = -1, newRecord = -1;

            if (row == null)
                return;

            if (row.oldRecord != -1) {
                oldRecord = table.recordManager.ImportRecord(row.Table, row.oldRecord);
            }
            if (row.newRecord != -1) {
                if (row.newRecord != row.oldRecord) {
                    newRecord = table.recordManager.ImportRecord(row.Table, row.newRecord);
                }
                else
                    newRecord = oldRecord;
            }

            DataRow targetRow = table.AddRecords(oldRecord, newRecord);

            if (row.HasErrors) {
                targetRow.RowError = row.RowError;

                DataColumn[] cols = row.GetColumnsInError();

                for (int i = 0; i < cols.Length; i++) {
                    DataColumn col = targetRow.Table.Columns[cols[i].ColumnName];
                    targetRow.SetColumnError(col, row.GetColumnError(cols[i]));
                }
            }

       }
 internal static bool RowHasErrors(DataRow row)
 {
     int count = row.Table.Columns.Count;
     if (row.HasErrors && (row.RowError.Length > 0))
     {
         return true;
     }
     for (int i = 0; i < count; i++)
     {
         DataColumn column = row.Table.Columns[i];
         string columnError = row.GetColumnError(column);
         if ((columnError != null) && (columnError.Length != 0))
         {
             return true;
         }
     }
     return false;
 }
Exemplo n.º 16
0
        public void ImportRow(DataRow row)
        {
            IntPtr hscp;
            Bid.ScopeEnter(out hscp, "<ds.DataTable.ImportRow|API> %d#\n", ObjectID);
            try {
                int oldRecord = -1, newRecord = -1;

                if (row == null)
                    return;

                if (row.oldRecord != -1) {
                    oldRecord = recordManager.ImportRecord(row.Table, row.oldRecord);
                }
                if (row.newRecord != -1) {  // row not deleted
                    if (row.RowState != DataRowState.Unchanged) { // not unchanged, it means Added or modified
                        newRecord = recordManager.ImportRecord(row.Table, row.newRecord);
                    }
                    else
                        newRecord = oldRecord;
                }

                if (oldRecord != -1 || newRecord != -1) {
                    DataRow targetRow = AddRecords(oldRecord, newRecord);

                    if (row.HasErrors) {
                        targetRow.RowError = row.RowError;

                        DataColumn[] cols = row.GetColumnsInError();

                        for (int i = 0; i < cols.Length; i++) {
                            DataColumn col = targetRow.Table.Columns[cols[i].ColumnName];
                            targetRow.SetColumnError(col, row.GetColumnError(cols[i]));
                        }
                    }
                }
            }
            finally {
                Bid.ScopeLeave(ref hscp);
            }

       }
Exemplo n.º 17
0
        /// <summary>
        /// Builds a string out of DataColumns that have errors and gives the name of the
        /// column where the first error is stored.
        ///
        /// </summary>
        /// <param name="ADataRow">DataRow in which the DataColumn errors should be iterated.</param>
        /// <param name="AErrorMessages">String containing all DataColumns that have errors,
        /// separated by two CR+LF's.</param>
        /// <param name="AFirstErrorControlName">Name of the DataColumn where the first error is
        /// stored.
        /// </param>
        /// <returns>void</returns>
        public static void IterateErrorsInData(DataRow ADataRow, out String AErrorMessages, out String AFirstErrorControlName)
        {
            string ErrorMessage;
            int ErrorCounter;

            DataColumn[] ErrorColumns;
            AErrorMessages = "";
            AFirstErrorControlName = "";

            ErrorColumns = ADataRow.GetColumnsInError();

            for (ErrorCounter = 0; ErrorCounter <= ErrorColumns.Length; ErrorCounter += 1)
            {
                ErrorMessage = ADataRow.GetColumnError(ErrorColumns[ErrorCounter]);

                if (ErrorCounter == 0)
                {
                    AFirstErrorControlName =
                        ErrorMessage.Substring(ErrorMessage.IndexOf("//[[") + 4, ErrorMessage.IndexOf("]]") - (ErrorMessage.IndexOf("//[[") + 4));
                }

                ErrorMessage = ErrorMessage.Substring(0, ErrorMessage.IndexOf("//[["));
                AErrorMessages = AErrorMessages + ErrorMessage + Environment.NewLine + Environment.NewLine;
            }
        }