System.Data.DataTable.LoadDataRow C# (CSharp) Method

LoadDataRow() public method

Finds and updates a specific row. If no matching row is found, a new row is created using the given values.
public LoadDataRow ( object values, bool fAcceptChanges ) : DataRow
values object
fAcceptChanges bool
return DataRow
        public DataRow LoadDataRow(object[] values, bool fAcceptChanges)
        {
            long logScopeId = DataCommonEventSource.Log.EnterScope("<ds.DataTable.LoadDataRow|API> {0}, fAcceptChanges={1}", ObjectID, fAcceptChanges);
            try
            {
                DataRow row;
                if (_inDataLoad)
                {
                    int record = NewRecordFromArray(values);
                    if (_loadIndex != null)
                    {
                        // not expecting LiveIndexes to clear the index we use between calls to LoadDataRow
                        Debug.Assert(2 <= _loadIndex.RefCount, "bad loadIndex.RefCount");

                        int result = _loadIndex.FindRecord(record);
                        if (result != -1)
                        {
                            int resultRecord = _loadIndex.GetRecord(result);
                            row = _recordManager[resultRecord];
                            Debug.Assert(row != null, "Row can't be null for index record");
                            row.CancelEdit();
                            if (row.RowState == DataRowState.Deleted)
                            {
                                SetNewRecord(row, row._oldRecord, DataRowAction.Rollback, false, true);
                            }
                            SetNewRecord(row, record, DataRowAction.Change, false, true);
                            if (fAcceptChanges)
                            {
                                row.AcceptChanges();
                            }
                            return row;
                        }
                    }
                    row = NewRow(record);
                    AddRow(row);
                    if (fAcceptChanges)
                    {
                        row.AcceptChanges();
                    }
                    return row;
                }
                else
                {
                    // In case, BeginDataLoad is not called yet
                    row = UpdatingAdd(values);
                    if (fAcceptChanges)
                    {
                        row.AcceptChanges();
                    }
                    return row;
                }
            }
            finally
            {
                DataCommonEventSource.Log.ExitScope(logScopeId);
            }
        }

Same methods

DataTable::LoadDataRow ( object values, LoadOption loadOption ) : DataRow

Usage Example

        public static string aboutList()
        {
            StringBuilder strTxt = new StringBuilder();
            DataTable tbl = new DataTable();
            tbl.Columns.Add("Title", typeof(string));
            tbl.Columns.Add("Url", typeof(string));
            object[] aValues = { "公司简介", "About.aspx" };
            tbl.LoadDataRow(aValues, true);
            object[] aValues1 = { "招聘信息", "Jobs.aspx" };
            tbl.LoadDataRow(aValues1, true);
            object[] aValues2 = { "站点地图", "SiteMap.aspx" };
            tbl.LoadDataRow(aValues2, true);
            object[] aValues3 = { "联系我们", "ContactInfo.aspx" };
            tbl.LoadDataRow(aValues3, true);

            if (tbl.Rows.Count > 0)
            {
                strTxt.Append("<dl>");
                for (int j = 0; j < tbl.Rows.Count; j++)
                {
                    DataRow dr2 = tbl.Rows[j];
                    strTxt.Append("<dd style=\"background-color: rgb(239,239,239); height: 26px;\">");
                    strTxt.Append("<a class=\"channelClass01\" href=\""+ dr2["Url"].ToString() +"\" style=\"position: relative;top: 5px; left: 15px;\">" + dr2["Title"].ToString() + "</a>");
                    strTxt.Append("</dd>");
                }
                strTxt.Append("</dl>");
            }
            else
                strTxt.Append("暂无栏目!");
            return strTxt.ToString();
        }
All Usage Examples Of System.Data.DataTable::LoadDataRow
DataTable