O'Reilly logo

ADO.NET Cookbook by Bill Hamilton

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

7.10. Creating Custom Columns in a Windows Forms DataGrid

Problem

You need to create a DataGrid having columns with custom formatting and attributes.

Solution

Use the DataGridTableStyle class.

The sample code contains two event handlers:

Form.Load

Sets up the sample by creating a DataAdapter and using it to fill a DataTable with data from the ProductID, ProductName, and Discontinued columns of the Products table in the Northwind database. The DataGridTableStyle class is used to define a data grid containing three custom columns—two text boxes and one check box—corresponding to the ProductID, ProductName, and Discontinued columns. Finally, the default view of the Products DataTable is bound to the data grid on the form.

Update Button.Click

Uses the DataAdapter created in the Form.Load event handler to update changes made to the Products DataTable back to the database.

The C# code is shown in Example 7-18.

Example 7-18. File: CustomColumnsInDataGridForm.cs

// Namespaces, variables, and constants using System; using System.Configuration; using System.Windows.Forms; using System.Data; using System.Data.SqlClient; private SqlDataAdapter da; private DataTable dt; // . . . private void CustomColumnsInDataGridForm_Load(object sender, System.EventArgs e) { // Create the DataAdapter. String selectCommand = "SELECT ProductID, ProductName, Discontinued " + "FROM Products"; da = new SqlDataAdapter(selectCommand, ConfigurationSettings.AppSettings["Sql_ConnectString"]); // Use CommandBuilder to handle ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required