DataTable objTable = new DataTable("NewBooks");
// declare a variable to hold a DataColumn object
DataColumn objColumn;
// define the columns (fields) within the table
// the first is an AutoIncrement column to act as the key
objColumn = objTable.Columns.Add("kBookKey", Type.GetType("System.Int32"));
objColumn.AutoIncrement = true;
objColumn.AutoIncrementSeed = 1000;
objColumn.AutoIncrementStep = 10;
// next, the ISBN column which must be unique and not allow Null values
objColumn = objTable.Columns.Add("ISBN", Type.GetType("System.String"));
objColumn.AllowDBNull = false;
objColumn.Unique = true;
objColumn.MaxLength = 10;
// now two more columns to hold general information
objTable.Columns.Add("Title", Type.GetType("System.String"));
objTable.Columns.Add("PublicationDate", Type.GetType("System.DateTime"));
// add two columns to hold stock and order quantities, with default values of zero
objColumn = objTable.Columns.Add("StockQty", Type.GetType("System.Int32"));
objColumn.DefaultValue = 0;
objColumn = objTable.Columns.Add("OrderedQty", Type.GetType("System.Int32"));
objColumn.DefaultValue = 0;
// add a column containing an expression showing the quantity availability
objColumn = objTable.Columns.Add("AvailableQty", Type.GetType("System.Int32"));
objColumn.Expression = "[StockQty] - [OrderedQty]";
// declare a variable to hold a DataRow object
DataRow objDataRow;
// create a new DataRow object instance in this table
objDataRow = objTable.NewRow();
// and fill in the values
objDataRow["ISBN"] = "1234567800";
objDataRow["Title"] = "Professional Video Recorder Programming";
objDataRow["PublicationDate"] = new DateTime(2001, 03, 01);
objDataRow["StockQty"] = 3956;
objDataRow["OrderedQty"] = 450;
objTable.Rows.Add(objDataRow);
// repeat to add two more rows
objDataRow = objTable.NewRow();
objDataRow["ISBN"] = "1234567801";
objDataRow["Title"] = "Professional WAP Phone Programming";
objDataRow["PublicationDate"] = new DateTime(2001, 06, 01);
objDataRow["StockQty"] = 329;
// note - no "OrderedQty" provided so default value used
objTable.Rows.Add(objDataRow);
objDataRow = objTable.NewRow();
objDataRow["ISBN"] = "1234567802";
objDataRow["Title"] = "Professional Radio Station Programming";
objDataRow["PublicationDate"] = new DateTime(2001, 04, 01);
// note - no "StockQty" provided so default value used
objDataRow["OrderedQty"] = 1200;
objTable.Rows.Add(objDataRow);
// assign the DataTable's DefaultView object to the DataGrid control
dgrResult.DataSource = objTable.DefaultView;
dgrResult.DataBind(); // and bind (display) the data