Export (0) Print
Expand All
Expand Minimize

DataRowVersion Enumeration

Describes the version of a DataRow.

Namespace:  System.Data
Assembly:  System.Data (in System.Data.dll)

public enum DataRowVersion

Member nameDescription
Supported by the XNA FrameworkCurrentThe row contains current values.
Supported by the XNA FrameworkDefaultThe default version of DataRowState. For a DataRowState value of Added, Modified or Deleted, the default version is Current. For a DataRowState value of Detached, the version is Proposed.
Supported by the XNA FrameworkOriginalThe row contains its original values.
Supported by the XNA FrameworkProposedThe row contains a proposed value.

The DataRowVersion values are used when retrieving the value found in a DataRow using Item or the GetChildRows of the DataRow object.

The DataRowVersion informs you what version of a DataRow exists. Versions change under the following circumstances:

  • After calling the DataRow object's BeginEdit method, if you change the value, the Current and Proposed values become available.

  • After calling the DataRow object's CancelEdit method, the Proposed value is deleted.

  • After calling the DataRow object's EndEdit method, the Proposed value becomes the Current value.

  • After calling the DataRow object's AcceptChanges method, the Original value becomes identical to the Current value.

  • After calling the DataTable object's AcceptChanges method, the Original value becomes identical to the Current value.

  • After calling the DataRow object's RejectChanges method, the Proposed value is discarded, and the version becomes Current.

The following example checks the DataRowVersion of a DataRow before invoking the AcceptChanges method.

	private static void CheckVersionBeforeAccept()
	{
		//Run a function to create a DataTable with one column.
		DataTable dataTable = MakeTable();

		DataRow dataRow = dataTable.NewRow();
		dataRow["FirstName"] = "Marcy";
		dataTable.Rows.Add(dataRow);

		dataRow.BeginEdit();
		// Edit data but keep the same value.
		dataRow[0] = "Marcy";
		// Uncomment the following line to add a new value. 
		// dataRow(0) = "Richard"
		Console.WriteLine(string.Format("FirstName {0}", dataRow[0]));

		// Compare the proposed version with the current. 
		if (dataRow.HasVersion(DataRowVersion.Proposed)) {
			if (object.ReferenceEquals(dataRow[0, DataRowVersion.Current], dataRow[0, DataRowVersion.Proposed])) {
				Console.WriteLine("The original and the proposed are the same.");
				dataRow.CancelEdit();
			} else {
				dataRow.AcceptChanges();
				Console.WriteLine("The original and the proposed are different.");
			}
		}
	}

	private static DataTable MakeTable()
	{
		// Make a simple table with one column.
		DataTable dt = new DataTable("dataTable");
		DataColumn firstName = new DataColumn("FirstName", Type.GetType("System.String"));
		dt.Columns.Add(firstName);
		return dt;
	}

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0, 2.0, 1.0
Show:
© 2015 Microsoft