DataGridView.AutoGenerateColumns Property

Note: This property is new in the .NET Framework version 2.0.

Gets or sets a value indicating whether columns are created automatically when the DataSource or DataMember properties are set.

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

public bool AutoGenerateColumns { get; set; }
/** @property */
public boolean get_AutoGenerateColumns ()

/** @property */
public void set_AutoGenerateColumns (boolean value)

public function get AutoGenerateColumns () : boolean

public function set AutoGenerateColumns (value : boolean)

Property Value

true if the columns should be created automatically; otherwise, false. The default is true.

Columns are automatically generated when this property is set to true and the DataSource or DataMember properties are set or changed. Columns can also be automatically generated when the AutoGenerateColumns property is changed from false to true. If this property is true and the DataSource changes so there are columns that do not match the columns of the previous DataSource value, data in the unmatched columns is discarded. This property is ignored if the DataSource or DataMember properties are not set.

Each column header will contain the value of the property name the column represents.

The following code example demonstrates how to initialize a simple data-bound DataGridView. It also demonstrates how to set the AutoGenerateColumns property. To run this example, paste the following code into a form that contains a DataGridView named dataGridView1, replace the value of the connectionString variable specified in the code with a string that is valid for the system the example will run on, and call the InitializeDataGridView method from the form's constructor or Load event handler.

private void InitializeDataGridView()
        // Set up the DataGridView.
        dataGridView1.Dock = DockStyle.Fill;

        // Automatically generate the DataGridView columns.
        dataGridView1.AutoGenerateColumns = true;

        // Set up the data source.
        bindingSource1.DataSource = GetData("Select * From Products");
        dataGridView1.DataSource = bindingSource1;

        // Automatically resize the visible rows.
        dataGridView1.AutoSizeRowsMode =

        // Set the DataGridView control's border.
        dataGridView1.BorderStyle = BorderStyle.Fixed3D;

        // Put the cells in edit mode when user enters them.
        dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
    catch (SqlException)
        MessageBox.Show("To run this sample replace connection.ConnectionString" +
            " with a valid connection string to a Northwind" +
            " database accessible to your system.", "ERROR",
            MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

private static DataTable GetData(string sqlCommand)
    string connectionString = "Integrated Security=SSPI;" +
        "Persist Security Info=False;" +
        "Initial Catalog=Northwind;Data Source=localhost";

    SqlConnection northwindConnection = new SqlConnection(connectionString);

    SqlCommand command = new SqlCommand(sqlCommand, northwindConnection);
    SqlDataAdapter adapter = new SqlDataAdapter();
    adapter.SelectCommand = command;

    DataTable table = new DataTable();
    table.Locale = System.Globalization.CultureInfo.InvariantCulture;

    return table;

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0