ErrorProvider::DataSource Property


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Gets or sets the data source that the ErrorProvider monitors.

Namespace:   System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

property Object^ DataSource {
	Object^ get();
	void set(Object^ value);

Property Value

Type: System::Object^

A data source based on the IList interface to be monitored for errors. Typically, this is a DataSet to be monitored for errors.

The DataSource is a data source that you can attach to a control and that you want to monitor for errors. DataSource can be set to any collection that implements IList.

To avoid conflicts at run time that can occur when changing DataSource and DataMember, you should use BindToDataAndErrors instead of setting DataSource and DataMember individually.

The following code example shows how to use the ErrorProvider with a DataSource and DataMember to indicate a data error to the user. This code assumes you have created and populated a DataSet named dataSet1 containing a DataTable named dataTable1. When you bind the DataSet to a control such as the DataGridView control, errors specified through DataRow objects appear as error glyphs in the DataGridView control.

   void InitializeComponent()

      // Standard control setup.
      // You set the DataSource to a data set, and the DataMember to a table.
      errorProvider1->DataSource = dataSet1;
      errorProvider1->DataMember = dataTable1->TableName;
      errorProvider1->ContainerControl = this;
      errorProvider1->BlinkRate = 200;

      // Since the ErrorProvider control does not have a visible component,
      // it does not need to be added to the form. 

   void buttonSave_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )

      // Checks for a bad post code.
      DataTable^ CustomersTable;
      CustomersTable = dataSet1->Tables[ "Customers" ];
      System::Collections::IEnumerator^ myEnum = (CustomersTable->Rows)->GetEnumerator();
      while ( myEnum->MoveNext() )
         DataRow^ row = safe_cast<DataRow^>(myEnum->Current);
         if ( Convert::ToBoolean( row[ "PostalCodeIsNull" ] ) )
            row->RowError = "The Customer details contain errors";
            row->SetColumnError( "PostalCode", "Postal Code required" );

.NET Framework
Available since 1.1
Return to top