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(); } }); } #endregion #region Reading a Blob field public async Task ReadBlobField(Table table, QueryFilter queryFilter, string blobFieldName) { await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() => { const string imageFileBaseName = "C:\path\to\image\directory\Image"; // for each row that satisfies the search criteria, write the blob field out to an image file using (RowCursor rowCursor = table.Search(queryFilter)) { int fileCount = 0; while (rowCursor.MoveNext()) { using (Row row = rowCursor.Current) { // Read the blob field into a MemoryStream MemoryStream memoryStream = row[blobFieldName] as MemoryStream; // Create a file using (FileStream outputFile = new FileStream(imageFileBaseName + fileCount.ToString(), FileMode.Create, FileAccess.Write)) { // Write the MemoryStream into the file memoryStream.WriteTo(outputFile); } } } } }); }