ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.Data Namespace / Table Class / CreateRow Method
A RowBuffer with the field values to be set for the new row.
Example

In This Topic
    CreateRow Method (Table)
    In This Topic
    Creates a new row in the table with a system assigned object ID. This method must be called on the MCT. Use QueuedTask.Run.
    Syntax
    public Row CreateRow( 
       RowBuffer rowBuffer
    )
    Public Function CreateRow( _
       ByVal rowBuffer As RowBuffer _
    ) As Row

    Parameters

    rowBuffer
    A RowBuffer with the field values to be set for the new row.

    Return Value

    A populated Row.
    Exceptions
    ExceptionDescription
    rowBuffer is null.
    This table/feature class does not support this operation. For example, it is a joined table.
    A geodatabase-related exception has occurred.
    Example
    Creating a Row
    public async Task CreatingARow()
    {
        string message = String.Empty;
        bool creationResult = false;
        EditOperation editOperation = new EditOperation();
    
        await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
        {
    
            using (Geodatabase geodatabase = new Geodatabase(
        new DatabaseConnectionFile(new Uri("path\\to\\sde\\file\\sdefile.sde"))))
            using (Table enterpriseTable = geodatabase.OpenDataset<Table>("LocalGovernment.GDB.piCIPCost"))
            {
    
                //var geodatabase = new Geodatabase(new FileGeodatabaseConnectionPath(uri)) for a File GDB
                //
                //var shapeFileConnPath = new FileSystemConnectionPath(uri, FileSystemDatastoreType.Shapefile);
                //var shapefile = new FileSystemDatastore(shapeFileConnPath);
                //var table = shapefile.OpenDataset<Table>(strShapeFileName); for a Shape file
    
                //declare the callback here. We are not executing it .yet.
                editOperation.Callback(context =>
          {
              TableDefinition tableDefinition = enterpriseTable.GetDefinition();
              int assetNameIndex = tableDefinition.FindField("ASSETNA");
    
              using (RowBuffer rowBuffer = enterpriseTable.CreateRowBuffer())
              {
                  // Either the field index or the field name can be used in the indexer.
                  rowBuffer[assetNameIndex] = "wMain";
                  rowBuffer["COST"] = 700;
                  rowBuffer["ACTION"] = "Open Cut";
    
                  // subtype value for "Abandon".
                  rowBuffer[tableDefinition.GetSubtypeField()] = 3;
    
                  using (Row row = enterpriseTable.CreateRow(rowBuffer))
                  {
                      // To Indicate that the attribute table has to be updated.
                      context.Invalidate(row);
                  }
              }
          }, enterpriseTable);
    
                try
                {
                    creationResult = editOperation.Execute();
                    if (!creationResult) message = editOperation.ErrorMessage;
                }
                catch (GeodatabaseException exObj)
                {
                    message = exObj.Message;
                }
            }
        });
    
        if (!string.IsNullOrEmpty(message))
            MessageBox.Show(message);
    
    }
    Writing a Blob field
    public async Task WriteBlobField(Table table, string blobFieldName, string imageFileName)
    {
        await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
        {
            // Read the image file into a MemoryStream
            MemoryStream memoryStream = new MemoryStream(); ;
            using (FileStream imageFile = new FileStream(imageFileName, FileMode.Open, FileAccess.Read))
            {
                imageFile.CopyTo(memoryStream);
            }
    
            // Create a new row in the table, and write the Memory Stream into a blob fiele
            using (RowBuffer rowBuffer = table.CreateRowBuffer())
            {
                rowBuffer[blobFieldName] = memoryStream;
                table.CreateRow(rowBuffer).Dispose();
            }
        });
    }
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also