Set up DataGridView from DataColumn
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
public class Car {
public string carPetName, carMake, carColor;
public Car(string petName, string make, string color) {
carPetName = petName;
carColor = color;
carMake = make;
}
}
public class MainForm : Form {
private List<Car> arTheCars = new List<Car>();
private DataTable inventoryTable = new DataTable("Inventory");
DataView coltsOnlyView; // I only show red colts.
public MainForm() {
InitializeComponent();
arTheCars.Add(new Car("C", "BMW", "Green"));
arTheCars.Add(new Car("T", "Y", "White"));
arTheCars.Add(new Car("AAA", "Jeep", "Tan"));
arTheCars.Add(new Car("PInducer", "Caravan", "Pink"));
arTheCars.Add(new Car("F", "BMW", "Pea Soup Green"));
arTheCars.Add(new Car("B", "BMW", "Black"));
arTheCars.Add(new Car("M", "DDD", "Red"));
arTheCars.Add(new Car("S", "Colt", "Black"));
CreateDataTable();
CreateDataView();
}
private void CreateDataTable() {
DataColumn carIDColumn = new DataColumn("CarID", typeof(int));
carIDColumn.ReadOnly = true;
carIDColumn.Caption = "Car ID";
carIDColumn.AllowDBNull = false;
carIDColumn.Unique = true;
carIDColumn.AutoIncrement = true;
carIDColumn.AutoIncrementSeed = 0;
carIDColumn.AutoIncrementStep = 1;
carIDColumn.ColumnMapping = MappingType.Attribute;
DataColumn carMakeColumn = new DataColumn("Make", typeof(string));
DataColumn carColorColumn = new DataColumn("Color", typeof(string));
DataColumn carPetNameColumn = new DataColumn("PetName", typeof(string));
carPetNameColumn.Caption = "Pet Name";
inventoryTable.Columns.AddRange(new DataColumn[] { carIDColumn, carMakeColumn, carColorColumn, carPetNameColumn });
inventoryTable.PrimaryKey = new DataColumn[] { inventoryTable.Columns[0] };
foreach (Car c in arTheCars) {
DataRow newRow = inventoryTable.NewRow();
newRow["Make"] = c.carMake;
newRow["Color"] = c.carColor;
newRow["PetName"] = c.carPetName;
inventoryTable.Rows.Add(newRow);
}
carInventoryGridView.DataSource = inventoryTable;
}
private void CreateDataView() {
coltsOnlyView = new DataView(inventoryTable);
coltsOnlyView.RowFilter = "Make = 'Colt'";
dataGridColtsView.DataSource = coltsOnlyView;
}
private void btnRemoveRow_Click(object sender, EventArgs e) {
try {
inventoryTable.Rows[(int.Parse(txtRowToRemove.Text))].Delete();
inventoryTable.AcceptChanges();
} catch (Exception ex) {
MessageBox.Show(ex.Message);
}
}
private void btnGetMakes_Click(object sender, EventArgs e) {
string filterStr = string.Format("Make= '{0}' ", txtMakeToGet.Text);
DataRow[] makes = inventoryTable.Select(filterStr, "PetName DESC");
if (makes.Length == 0)
MessageBox.Show("Sorry, no cars...", "Selection error!");
else {
string strMake = null;
for (int i = 0; i < makes.Length; i++) {
DataRow temp = makes[i];
strMake += temp["PetName"] + "\n";
}
MessageBox.Show(strMake, txtMakeToGet.Text + " type(s):");
}
}
private void btnChangeBeemersToColts_Click(object sender, EventArgs e) {
string filterStr = "Make='BMW'";
string strMake = null;
DataRow[] makes = inventoryTable.Select(filterStr);
for (int i = 0; i < makes.Length; i++) {
DataRow temp = makes[i];
strMake += temp["Make"] = "Colt";
makes[i] = temp;
}
}
private void ShowCarsWithIdLessThanFive() {
DataRow[] properIDs;
string newFilterStr = "ID > '5'";
properIDs = inventoryTable.Select(newFilterStr);
string strIDs = null;
for (int i = 0; i < properIDs.Length; i++) {
DataRow temp = properIDs[i];
strIDs += temp["PetName"]
+ " is ID " + temp["ID"] + "\n";
}
MessageBox.Show(strIDs, "Pet names of cars where ID > 5");
}
private void InitializeComponent() {
this.label1 = new System.Windows.Forms.Label();
this.carInventoryGridView = new System.Windows.Forms.DataGridView();
this.btnRemoveRow = new System.Windows.Forms.Button();
this.txtRowToRemove = new System.Windows.Forms.TextBox();
this.txtMakeToGet = new System.Windows.Forms.TextBox();
this.btnGetMakes = new System.Windows.Forms.Button();
this.btnChangeBeemersToColts = new System.Windows.Forms.Button();
this.dataGridColtsView = new System.Windows.Forms.DataGridView();
this.label2 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.carInventoryGridView)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dataGridColtsView)).BeginInit();
this.SuspendLayout();
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(11, 76);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(102, 13);
this.label1.TabIndex = 0;
this.label1.Text = "All Cars in DataTable";
//
this.carInventoryGridView.Location = new System.Drawing.Point(12, 93);
this.carInventoryGridView.Name = "carInventoryGridView";
this.carInventoryGridView.Size = new System.Drawing.Size(392, 150);
this.carInventoryGridView.TabIndex = 1;
this.carInventoryGridView.Text = "dataGridView1";
//
this.btnRemoveRow.Location = new System.Drawing.Point(12, 13);
this.btnRemoveRow.Name = "btnRemoveRow";
this.btnRemoveRow.Size = new System.Drawing.Size(101, 23);
this.btnRemoveRow.TabIndex = 2;
this.btnRemoveRow.Text = "Remove Row #";
this.btnRemoveRow.Click += new System.EventHandler(this.btnRemoveRow_Click);
//
this.txtRowToRemove.Location = new System.Drawing.Point(120, 15);
this.txtRowToRemove.Name = "txtRowToRemove";
this.txtRowToRemove.Size = new System.Drawing.Size(100, 20);
this.txtRowToRemove.TabIndex = 3;
//
this.txtMakeToGet.Location = new System.Drawing.Point(120, 44);
this.txtMakeToGet.Name = "txtMakeToGet";
this.txtMakeToGet.Size = new System.Drawing.Size(100, 20);
this.txtMakeToGet.TabIndex = 5;
//
// btnGetMakes
//
this.btnGetMakes.Location = new System.Drawing.Point(12, 42);
this.btnGetMakes.Name = "btnGetMakes";
this.btnGetMakes.Size = new System.Drawing.Size(101, 23);
this.btnGetMakes.TabIndex = 4;
this.btnGetMakes.Text = "Get These Makes";
this.btnGetMakes.Click += new System.EventHandler(this.btnGetMakes_Click);
//
// btnChangeBeemersToColts
//
this.btnChangeBeemersToColts.Location = new System.Drawing.Point(245, 15);
this.btnChangeBeemersToColts.Name = "btnChangeBeemersToColts";
this.btnChangeBeemersToColts.Size = new System.Drawing.Size(159, 23);
this.btnChangeBeemersToColts.TabIndex = 6;
this.btnChangeBeemersToColts.Text = "Change BMW to Colts";
this.btnChangeBeemersToColts.Click += new System.EventHandler(this.btnChangeBeemersToColts_Click);
//
// dataGridColtsView
//
this.dataGridColtsView.Location = new System.Drawing.Point(12, 266);
this.dataGridColtsView.Name = "dataGridColtsView";
this.dataGridColtsView.Size = new System.Drawing.Size(392, 150);
this.dataGridColtsView.TabIndex = 8;
this.dataGridColtsView.Text = "dataGridView1";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(11, 249);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(76, 13);
this.label2.TabIndex = 7;
this.label2.Text = "Colts Only View";
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(417, 433);
this.Controls.Add(this.dataGridColtsView);
this.Controls.Add(this.label2);
this.Controls.Add(this.btnChangeBeemersToColts);
this.Controls.Add(this.txtMakeToGet);
this.Controls.Add(this.btnGetMakes);
this.Controls.Add(this.txtRowToRemove);
this.Controls.Add(this.btnRemoveRow);
this.Controls.Add(this.carInventoryGridView);
this.Controls.Add(this.label1);
this.Name = "MainForm";
this.Text = "Car Data Table";
((System.ComponentModel.ISupportInitialize)(this.carInventoryGridView)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dataGridColtsView)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
private System.Windows.Forms.Label label1;
private System.Windows.Forms.DataGridView carInventoryGridView;
private System.Windows.Forms.Button btnRemoveRow;
private System.Windows.Forms.TextBox txtRowToRemove;
private System.Windows.Forms.TextBox txtMakeToGet;
private System.Windows.Forms.Button btnGetMakes;
private System.Windows.Forms.Button btnChangeBeemersToColts;
private System.Windows.Forms.DataGridView dataGridColtsView;
private System.Windows.Forms.Label label2;
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.Run(new MainForm());
}
}
Related examples in the same category