Csharp/CSharp Tutorial/ADO.Net/DataGrid
Содержание
Binding DataSet to DataGrid
<source lang="csharp">using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; using System.Data.SqlClient;
public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.DataGrid dataGrid1; private System.Windows.Forms.Label label1; private System.Windows.Forms.Button button1; public Form1() { this.dataGrid1 = new System.Windows.Forms.DataGrid(); this.label1 = new System.Windows.Forms.Label(); this.button1 = new System.Windows.Forms.Button(); ((System.ruponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit(); this.SuspendLayout(); // this.dataGrid1.DataMember = ""; this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText; this.dataGrid1.Location = new System.Drawing.Point(16, 56); this.dataGrid1.Name = "dataGrid1"; this.dataGrid1.Size = new System.Drawing.Size(264, 168); this.dataGrid1.TabIndex = 0; // this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.label1.Location = new System.Drawing.Point(8, 8); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(296, 40); this.label1.TabIndex = 1; this.label1.Text = "Databases in Code"; // this.button1.Location = new System.Drawing.Point(80, 240); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(120, 23); this.button1.TabIndex = 2; this.button1.Text = "Connect to database"; this.button1.Click += new System.EventHandler(this.button1_Click); // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(292, 273); this.Controls.Add(this.button1); this.Controls.Add(this.label1); this.Controls.Add(this.dataGrid1); this.Name = "Form1"; this.Text = "Form1"; ((System.ruponentModel.ISupportInitialize)(this.dataGrid1)).EndInit(); this.ResumeLayout(false); } [STAThread] static void Main() { Application.Run(new Form1()); } private void button1_Click(object sender, System.EventArgs e) { DataSet dataset1 = new DataSet("dataset1"); string connectionString = "workstation id=STEVE;packet size=4096;integrated security=SSPI;initial catalog=pubs;persist security info=False"; SqlConnection connection1 = new SqlConnection(connectionString); SqlCommand command1 = new SqlCommand("SELECT * FROM authors"); command1.rumandType = CommandType.Text; connection1.Open(); command1.Connection = connection1; SqlDataAdapter sqlDataAdapter1 = new SqlDataAdapter(); sqlDataAdapter1.SelectCommand = command1; sqlDataAdapter1.Fill(dataset1, "authors"); dataGrid1.SetDataBinding(dataset1, "authors"); } }</source>
Data binding for Multiple Controls
<source lang="csharp">using System.Data.SqlClient; using System.Data; using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms;
public class MultipleControls : System.Windows.Forms.Form { private System.Windows.Forms.DataGrid dataGrid1; private System.Windows.Forms.ruboBox cboCustomerID; private System.Windows.Forms.Button button1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox txtCustomerID; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label3; private System.Windows.Forms.TextBox txtContactName; public MultipleControls() { this.dataGrid1 = new System.Windows.Forms.DataGrid(); this.cboCustomerID = new System.Windows.Forms.ruboBox(); this.button1 = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); this.txtCustomerID = new System.Windows.Forms.TextBox(); this.label2 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.txtContactName = new System.Windows.Forms.TextBox(); ((System.ruponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit(); this.SuspendLayout(); // this.dataGrid1.Anchor = (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right); this.dataGrid1.CaptionVisible = false; this.dataGrid1.DataMember = ""; this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText; this.dataGrid1.Location = new System.Drawing.Point(12, 112); this.dataGrid1.Name = "dataGrid1"; this.dataGrid1.Size = new System.Drawing.Size(436, 168); this.dataGrid1.TabIndex = 1; // // cboCustomerID // this.cboCustomerID.DropDownStyle = System.Windows.Forms.ruboBoxStyle.DropDownList; this.cboCustomerID.Location = new System.Drawing.Point(120, 8); this.cboCustomerID.Name = "cboCustomerID"; this.cboCustomerID.Size = new System.Drawing.Size(260, 21); this.cboCustomerID.TabIndex = 2; // // button1 // this.button1.Location = new System.Drawing.Point(340, 80); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(104, 24); this.button1.TabIndex = 3; this.button1.Text = "Test"; this.button1.Visible = false; this.button1.Click += new System.EventHandler(this.button1_Click); // // label1 // this.label1.Location = new System.Drawing.Point(12, 12); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(96, 20); this.label1.TabIndex = 4; this.label1.Text = "Select By ID:"; // // txtCustomerID // this.txtCustomerID.Location = new System.Drawing.Point(120, 44); this.txtCustomerID.Name = "txtCustomerID"; this.txtCustomerID.Size = new System.Drawing.Size(188, 21); this.txtCustomerID.TabIndex = 5; this.txtCustomerID.Text = ""; // // label2 // this.label2.Location = new System.Drawing.Point(12, 48); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(80, 16); this.label2.TabIndex = 6; this.label2.Text = "Customter ID:"; // // label3 // this.label3.Location = new System.Drawing.Point(12, 72); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(104, 16); this.label3.TabIndex = 7; this.label3.Text = "Contact Name:"; // // txtContactName // this.txtContactName.Location = new System.Drawing.Point(120, 68); this.txtContactName.Name = "txtContactName"; this.txtContactName.Size = new System.Drawing.Size(188, 21); this.txtContactName.TabIndex = 8; this.txtContactName.Text = ""; // // MultipleControls // this.AutoScaleBaseSize = new System.Drawing.Size(5, 14); this.ClientSize = new System.Drawing.Size(456, 294); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.txtContactName, this.label3, this.label2, this.txtCustomerID, this.label1, this.button1, this.cboCustomerID, this.dataGrid1}); this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.Load += new System.EventHandler(this.MultipleControls_Load); ((System.ruponentModel.ISupportInitialize)(this.dataGrid1)).EndInit(); this.ResumeLayout(false); } private void MultipleControls_Load(object sender, System.EventArgs e) { string connectionString = @"Data Source=(local);Initial Catalog=Northwind;Integrated Security=SSPI"; string SQL = "SELECT * FROM Customers"; SqlConnection con = new SqlConnection(connectionString); SqlCommand com = new SqlCommand(SQL, con); SqlDataAdapter adapter = new SqlDataAdapter(com); DataSet ds = new DataSet("Northwind"); con.Open(); adapter.Fill(ds, "Customers"); com.rumandText = "SELECT * FROM Products"; adapter.Fill(ds, "Products"); com.rumandText = "SELECT * FROM Suppliers"; adapter.Fill(ds, "Suppliers"); con.Close(); dataGrid1.DataSource = ds.Tables["Customers"].DefaultView; cboCustomerID.DataSource = ds.Tables["Customers"].DefaultView; cboCustomerID.DisplayMember = "CustomerID"; txtCustomerID.DataBindings.Add("Text", ds.Tables["Customers"].DefaultView,"CustomerID"); txtContactName.DataBindings.Add("Text", ds.Tables["Customers"].DefaultView,"ContactName"); } private void button1_Click(object sender, System.EventArgs e) { BindingContext binding = this.BindingContext; BindingManagerBase currency = binding[cboCustomerID.DataSource]; DataRowView drView = (DataRowView)currency.Current; MessageBox.Show(drView["CustomerID"].ToString()); } [STAThread] static void Main() { Application.Run(new MultipleControls()); } }</source>
DataGrid View: on data error
<source lang="csharp">using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;
public class Form1 : Form {
public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { List<SimpleDataItem> items = new List<SimpleDataItem>(); for (int i = 0; i < 10; i++) { SimpleDataItem item = new SimpleDataItem(); item.SomeVal = i; item.Var = "Hi"; items.Add(item); }
simpleDataItemBindingSource.DataSource = items; } private void OnDataError(object sender, DataGridViewDataErrorEventArgs e) { System.Console.WriteLine(e.Exception.GetType()); System.Console.WriteLine(e.Exception.Message); System.Console.WriteLine(e.Context); } private void InitializeComponent() { this.simpleDataItemDataGridView = new System.Windows.Forms.DataGridView(); this.SomeVal = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Var = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dataGridView1 = new System.Windows.Forms.DataGridView(); this.simpleDataItemBindingNavigator = new System.Windows.Forms.BindingNavigator(); this.bindingNavigatorAddNewItem = new System.Windows.Forms.ToolStripButton(); this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel(); this.bindingNavigatorDeleteItem = new System.Windows.Forms.ToolStripButton(); this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton(); this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton(); this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator(); this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox(); this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton(); this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton(); this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator(); this.bindingNavigatorSaveItem = new System.Windows.Forms.ToolStripButton(); this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.simpleDataItemBindingSource = new System.Windows.Forms.BindingSource(); ((System.ruponentModel.ISupportInitialize)(this.simpleDataItemDataGridView)).BeginInit(); ((System.ruponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); ((System.ruponentModel.ISupportInitialize)(this.simpleDataItemBindingNavigator)).BeginInit(); this.simpleDataItemBindingNavigator.SuspendLayout(); ((System.ruponentModel.ISupportInitialize)(this.simpleDataItemBindingSource)).BeginInit(); this.SuspendLayout(); // // simpleDataItemDataGridView // this.simpleDataItemDataGridView.AutoGenerateColumns = false; this.simpleDataItemDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.SomeVal, this.Var}); this.simpleDataItemDataGridView.Location = new System.Drawing.Point(27, 32); this.simpleDataItemDataGridView.Name = "simpleDataItemDataGridView"; this.simpleDataItemDataGridView.Size = new System.Drawing.Size(300, 220); this.simpleDataItemDataGridView.TabIndex = 1; // // SomeVal // this.SomeVal.DataPropertyName = "SomeVal"; this.SomeVal.HeaderText = "SomeVal"; this.SomeVal.Name = "SomeVal"; // // Var // this.Var.DataPropertyName = "Var"; this.Var.HeaderText = "Var"; this.Var.Name = "Var"; // // dataGridView1 // this.dataGridView1.AutoGenerateColumns = false; this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.dataGridViewTextBoxColumn3, this.dataGridViewTextBoxColumn4}); this.dataGridView1.DataSource = this.simpleDataItemBindingSource; this.dataGridView1.Location = new System.Drawing.Point(27, 39); this.dataGridView1.Name = "dataGridView1"; this.dataGridView1.Size = new System.Drawing.Size(300, 220); this.dataGridView1.TabIndex = 3; this.dataGridView1.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.OnDataError); // // simpleDataItemBindingNavigator // this.simpleDataItemBindingNavigator.AddNewItem = this.bindingNavigatorAddNewItem; this.simpleDataItemBindingNavigator.BindingSource = this.simpleDataItemBindingSource; this.simpleDataItemBindingNavigator.CountItem = this.bindingNavigatorCountItem; this.simpleDataItemBindingNavigator.DeleteItem = this.bindingNavigatorDeleteItem; this.simpleDataItemBindingNavigator.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.bindingNavigatorMoveFirstItem, this.bindingNavigatorMovePreviousItem, this.bindingNavigatorSeparator, this.bindingNavigatorPositionItem, this.bindingNavigatorCountItem, this.bindingNavigatorSeparator1, this.bindingNavigatorMoveNextItem, this.bindingNavigatorMoveLastItem, this.bindingNavigatorSeparator2, this.bindingNavigatorAddNewItem, this.bindingNavigatorDeleteItem, this.bindingNavigatorSaveItem}); this.simpleDataItemBindingNavigator.Location = new System.Drawing.Point(0, 0); this.simpleDataItemBindingNavigator.MoveFirstItem = this.bindingNavigatorMoveFirstItem; this.simpleDataItemBindingNavigator.MoveLastItem = this.bindingNavigatorMoveLastItem; this.simpleDataItemBindingNavigator.MoveNextItem = this.bindingNavigatorMoveNextItem; this.simpleDataItemBindingNavigator.MovePreviousItem = this.bindingNavigatorMovePreviousItem; this.simpleDataItemBindingNavigator.Name = "simpleDataItemBindingNavigator"; this.simpleDataItemBindingNavigator.PositionItem = this.bindingNavigatorPositionItem; this.simpleDataItemBindingNavigator.Size = new System.Drawing.Size(375, 25); this.simpleDataItemBindingNavigator.TabIndex = 2; this.simpleDataItemBindingNavigator.Text = "bindingNavigator1"; // // bindingNavigatorAddNewItem // this.bindingNavigatorAddNewItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem"; this.bindingNavigatorAddNewItem.Size = new System.Drawing.Size(23, 22); this.bindingNavigatorAddNewItem.Text = "Add new"; // // bindingNavigatorCountItem // this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem"; this.bindingNavigatorCountItem.Size = new System.Drawing.Size(36, 22); this.bindingNavigatorCountItem.Text = "of {0}"; this.bindingNavigatorCountItem.ToolTipText = "Total number of items"; // // bindingNavigatorDeleteItem // this.bindingNavigatorDeleteItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem"; this.bindingNavigatorDeleteItem.Size = new System.Drawing.Size(23, 22); this.bindingNavigatorDeleteItem.Text = "Delete"; // // bindingNavigatorMoveFirstItem // this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem"; this.bindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(23, 22); this.bindingNavigatorMoveFirstItem.Text = "Move first"; // // bindingNavigatorMovePreviousItem // this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem"; this.bindingNavigatorMovePreviousItem.Size = new System.Drawing.Size(23, 22); this.bindingNavigatorMovePreviousItem.Text = "Move previous"; // // bindingNavigatorSeparator // this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator"; this.bindingNavigatorSeparator.Size = new System.Drawing.Size(6, 25); // // bindingNavigatorPositionItem // this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem"; this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 25); this.bindingNavigatorPositionItem.Text = "0"; this.bindingNavigatorPositionItem.ToolTipText = "Current position"; // // bindingNavigatorSeparator1 // this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator1"; this.bindingNavigatorSeparator1.Size = new System.Drawing.Size(6, 25); // // bindingNavigatorMoveNextItem // this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem"; this.bindingNavigatorMoveNextItem.Size = new System.Drawing.Size(23, 22); this.bindingNavigatorMoveNextItem.Text = "Move next"; // // bindingNavigatorMoveLastItem // this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem"; this.bindingNavigatorMoveLastItem.Size = new System.Drawing.Size(23, 22); this.bindingNavigatorMoveLastItem.Text = "Move last"; // // bindingNavigatorSeparator2 // this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2"; this.bindingNavigatorSeparator2.Size = new System.Drawing.Size(6, 25); // // bindingNavigatorSaveItem // this.bindingNavigatorSaveItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.bindingNavigatorSaveItem.Enabled = false; this.bindingNavigatorSaveItem.Name = "bindingNavigatorSaveItem"; this.bindingNavigatorSaveItem.Size = new System.Drawing.Size(23, 22); this.bindingNavigatorSaveItem.Text = "Save Data"; // // dataGridViewTextBoxColumn3 // this.dataGridViewTextBoxColumn3.DataPropertyName = "SomeVal"; this.dataGridViewTextBoxColumn3.HeaderText = "SomeVal"; this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3"; // // dataGridViewTextBoxColumn4 // this.dataGridViewTextBoxColumn4.DataPropertyName = "Var"; this.dataGridViewTextBoxColumn4.HeaderText = "Var"; this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4"; // // simpleDataItemBindingSource // this.simpleDataItemBindingSource.DataSource = typeof(SimpleDataItem); // // Form1 // this.ClientSize = new System.Drawing.Size(375, 266); this.Controls.Add(this.dataGridView1); this.Controls.Add(this.simpleDataItemBindingNavigator); this.Name = "Form1"; ((System.ruponentModel.ISupportInitialize)(this.simpleDataItemDataGridView)).EndInit(); ((System.ruponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); ((System.ruponentModel.ISupportInitialize)(this.simpleDataItemBindingNavigator)).EndInit(); this.simpleDataItemBindingNavigator.ResumeLayout(false); this.simpleDataItemBindingNavigator.PerformLayout(); ((System.ruponentModel.ISupportInitialize)(this.simpleDataItemBindingSource)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); }
private System.Windows.Forms.DataGridView simpleDataItemDataGridView; private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; private System.Windows.Forms.DataGridViewTextBoxColumn SomeVal; private System.Windows.Forms.DataGridViewTextBoxColumn Var; private System.Windows.Forms.BindingSource simpleDataItemBindingSource; private System.Windows.Forms.DataGridView dataGridView1; private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3; private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4; private System.Windows.Forms.BindingNavigator simpleDataItemBindingNavigator; private System.Windows.Forms.ToolStripButton bindingNavigatorAddNewItem; private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem; private System.Windows.Forms.ToolStripButton bindingNavigatorDeleteItem; private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem; private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem; private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator; private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem; private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1; private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem; private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem; private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2; private System.Windows.Forms.ToolStripButton bindingNavigatorSaveItem;
[STAThread] static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); }
} class SimpleDataItem {
private int m_SomeVal; public int SomeVal { get { throw new ArgumentException("foo"); } set { m_SomeVal = value; } } private string m_SomeVar; public string Var { get { return m_SomeVar; } set { m_SomeVar = value; } }
}</source>
Link two DataTable in a DataGrid
<source lang="csharp">using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; using System.Data.rumon; public class DataTableLinkinDataGrid : System.Windows.Forms.Form {
private System.Windows.Forms.DataGrid dataGrid1; private System.Data.DataSet dtSet; public DataTableLinkinDataGrid() { this.dataGrid1 = new System.Windows.Forms.DataGrid(); ((System.ruponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit(); this.SuspendLayout(); // this.dataGrid1.DataMember = ""; this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText; this.dataGrid1.Location = new System.Drawing.Point(16, 8); this.dataGrid1.Size = new System.Drawing.Size(384, 240); // // DataTableLinkinDataGrid // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(416, 273); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.dataGrid1}); ((System.ruponentModel.ISupportInitialize)(this.dataGrid1)).EndInit(); this.ResumeLayout(false); CreateCustomersTable(); CreateOrdersTable(); BindData(); } [STAThread] static void Main() { Application.Run(new DataTableLinkinDataGrid()); } private void CreateCustomersTable() { System.Data.DataTable custTable = new DataTable("Customers"); DataColumn dtColumn; DataRow myDataRow; dtColumn = new DataColumn(); dtColumn.DataType = System.Type.GetType("System.Int32"); dtColumn.ColumnName = "id"; dtColumn.Caption = "Cust ID"; dtColumn.ReadOnly = true; dtColumn.Unique = true; custTable.Columns.Add(dtColumn); dtColumn = new DataColumn(); dtColumn.DataType = System.Type.GetType("System.String"); dtColumn.ColumnName = "Name"; dtColumn.Caption = "Cust Name"; dtColumn.AutoIncrement = false; dtColumn.ReadOnly = false; dtColumn.Unique = false; custTable.Columns.Add(dtColumn);
dtColumn = new DataColumn(); dtColumn.DataType = System.Type.GetType("System.String"); dtColumn.ColumnName = "Address"; dtColumn.Caption = "Address"; dtColumn.ReadOnly = false; dtColumn.Unique = false; custTable.Columns.Add(dtColumn); DataColumn[] PrimaryKeyColumns = new DataColumn[1]; PrimaryKeyColumns[0] = custTable.Columns["id"]; custTable.PrimaryKey = PrimaryKeyColumns; dtSet = new DataSet("Customers"); dtSet.Tables.Add(custTable); myDataRow = custTable.NewRow(); myDataRow["id"] = 1001; myDataRow["Address"] = "address 1"; myDataRow["Name"] = "G"; custTable.Rows.Add(myDataRow); myDataRow = custTable.NewRow(); myDataRow["id"] = 1002; myDataRow["Name"] = "R"; myDataRow["Address"] = "address 2"; custTable.Rows.Add(myDataRow); myDataRow = custTable.NewRow(); myDataRow["id"] = 1003; myDataRow["Name"] = "M"; myDataRow["Address"] = "address 3"; custTable.Rows.Add(myDataRow); } private void CreateOrdersTable() { DataTable ordersTable = new DataTable("Orders"); DataColumn dtColumn; DataRow dtRow; dtColumn = new DataColumn(); dtColumn.DataType= System.Type.GetType("System.Int32"); dtColumn.ColumnName = "OrderId"; dtColumn.AutoIncrement = true; dtColumn.Caption = "Order ID"; dtColumn.ReadOnly = true; dtColumn.Unique = true; ordersTable.Columns.Add(dtColumn); dtColumn = new DataColumn(); dtColumn.DataType= System.Type.GetType("System.String"); dtColumn.ColumnName = "Name"; dtColumn.Caption = "Item Name"; ordersTable.Columns.Add(dtColumn); // Create CustId column which reprence CustId from // the custTable dtColumn = new DataColumn(); dtColumn.DataType= System.Type.GetType("System.Int32"); dtColumn.ColumnName = "CustId"; dtColumn.AutoIncrement = false; dtColumn.Caption = "CustId"; dtColumn.ReadOnly = false; dtColumn.Unique = false; ordersTable.Columns.Add(dtColumn); dtColumn = new DataColumn(); dtColumn.DataType= System.Type.GetType("System.String"); dtColumn.ColumnName = "Description"; dtColumn.Caption = "Description Name"; ordersTable.Columns.Add(dtColumn); dtSet.Tables.Add(ordersTable); dtRow = ordersTable.NewRow(); dtRow["OrderId"] = 0; dtRow["Name"] = "Book"; dtRow["CustId"] = 1001 ; dtRow["Description"] = "desc 1" ; ordersTable.Rows.Add(dtRow); dtRow = ordersTable.NewRow(); dtRow["OrderId"] = 1; dtRow["Name"] = "Book"; dtRow["CustId"] = 1001 ; dtRow["Description"] = "desc 2" ; ordersTable.Rows.Add(dtRow); } private void BindData() { DataRelation dtRelation; DataColumn CustCol = dtSet.Tables["Customers"].Columns["id"]; DataColumn orderCol = dtSet.Tables["Orders"].Columns["CustId"]; dtRelation = new DataRelation("CustOrderRelation", CustCol, orderCol); dtSet.Tables["Orders"].ParentRelations.Add(dtRelation); dataGrid1.SetDataBinding(dtSet,"Customers"); }
}</source>
Load data in DataTable to DataGrid
<source lang="csharp">using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; public class DataTableCreateInCode : System.Windows.Forms.Form {
private System.Windows.Forms.DataGrid dataGrid1; private System.ruponentModel.Container components = null; public DataTableCreateInCode() { InitializeComponent(); // dcConstructorsTest(); CreateCustTable(); } protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } private void InitializeComponent() { this.dataGrid1 = new System.Windows.Forms.DataGrid(); ((System.ruponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit(); this.SuspendLayout(); // // dataGrid1 // this.dataGrid1.DataMember = ""; this.dataGrid1.Location = new System.Drawing.Point(8, 8); this.dataGrid1.Name = "dataGrid1"; this.dataGrid1.Size = new System.Drawing.Size(400, 264); this.dataGrid1.TabIndex = 0; // // DataTableCreateInCode // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(416, 285); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.dataGrid1}); this.Name = "DataTableCreateInCode"; this.Text = "DataTableCreateInCode"; ((System.ruponentModel.ISupportInitialize)(this.dataGrid1)).EndInit(); this.ResumeLayout(false); } [STAThread] static void Main() { Application.Run(new DataTableCreateInCode()); }
private void dcConstructorsTest() { // Create Customers table DataTable custTable = new DataTable("Customers"); DataSet dtSet = new DataSet(); // Create Price Column System.Type myDataType; myDataType = System.Type.GetType("System.Int32"); DataColumn priceCol = new DataColumn("Price", myDataType ); priceCol.Caption = "Price"; custTable.Columns.Add(priceCol); // Create Quantity Column DataColumn qtCol = new DataColumn("Quantity"); qtCol.DataType = System.Type.GetType("System.Int32"); qtCol.Caption = "Quantity"; custTable.Columns.Add(qtCol); // Creating an expression string strExpr = "Price * Quantity"; // Create Total Column, which is result of Price*Quantity DataColumn totCol = new DataColumn("Total", myDataType, strExpr, MappingType.Attribute); totCol.Caption = "Total"; // Add Name column to the table. custTable.Columns.Add(totCol); // Add custTable to DataSet dtSet.Tables.Add(custTable); // Bind dataset to the data grid dataGrid1.SetDataBinding(dtSet,"Customers"); }
// Create a DataTable private void CreateCustTable() { // Create a new DataTable DataTable custTable = new DataTable("Customers"); // Create ID Column DataColumn IdCol = new DataColumn(); IdCol.ColumnName= "ID"; IdCol.DataType = Type.GetType("System.Int32"); IdCol.ReadOnly = true; IdCol.AllowDBNull = false; IdCol.Unique = true; IdCol.AutoIncrement = true; IdCol.AutoIncrementSeed = 1; IdCol.AutoIncrementStep = 1; custTable.Columns.Add(IdCol); // Create Name Column DataColumn nameCol = new DataColumn(); nameCol.ColumnName= "Name"; nameCol.DataType = Type.GetType("System.String"); custTable.Columns.Add(nameCol); // Create Address Column DataColumn addCol = new DataColumn(); addCol.ColumnName= "Address"; addCol.DataType = Type.GetType("System.String"); custTable.Columns.Add(addCol); // Create DOB Column DataColumn dobCol = new DataColumn(); dobCol.ColumnName= "DOB"; dobCol.DataType = Type.GetType("System.DateTime"); custTable.Columns.Add(dobCol); // VAR Column DataColumn fullTimeCol = new DataColumn(); fullTimeCol.ColumnName= "VAR"; fullTimeCol.DataType = Type.GetType("System.Boolean"); custTable.Columns.Add(fullTimeCol); // Make the ID column the primary key column. DataColumn[] PrimaryKeyColumns = new DataColumn[1]; PrimaryKeyColumns[0] = custTable.Columns["ID"]; custTable.PrimaryKey = PrimaryKeyColumns; // Create a dataset DataSet ds = new DataSet("Customers"); // Add Customers table to the dataset ds.Tables.Add(custTable); // Attach the data set to a DataGrid dataGrid1.DataSource = ds.DefaultViewManager; }
}</source>
Load Data to DataGrid
<source lang="csharp">using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; using System.Data.SqlClient; public class LoadDataToDataGrid : System.Windows.Forms.Form {
private System.Windows.Forms.DataGrid dataGrid1; private System.Windows.Forms.Button button1; private System.ruponentModel.Container components = null; public LoadDataToDataGrid() { InitializeComponent(); } protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } private void InitializeComponent() { this.dataGrid1 = new System.Windows.Forms.DataGrid(); this.button1 = new System.Windows.Forms.Button(); ((System.ruponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit(); this.SuspendLayout(); this.dataGrid1.DataMember = ""; this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText; this.dataGrid1.Location = new System.Drawing.Point(8, 8); this.dataGrid1.Name = "dataGrid1"; this.dataGrid1.Size = new System.Drawing.Size(368, 240); this.dataGrid1.TabIndex = 0; this.button1.Location = new System.Drawing.Point(112, 264); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(88, 32); this.button1.TabIndex = 1; this.button1.Text = "Fill"; this.button1.Click += new System.EventHandler(this.button1_Click); // // LoadDataToDataGrid // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(384, 302); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.button1, this.dataGrid1}); this.Name = "LoadDataToDataGrid"; this.Text = "LoadDataToDataGrid"; ((System.ruponentModel.ISupportInitialize)(this.dataGrid1)).EndInit(); this.ResumeLayout(false); } [STAThread] static void Main() { Application.Run(new LoadDataToDataGrid()); } private void button1_Click(object sender, System.EventArgs e) { string ConnectionString ="server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI;"; SqlConnection myConnection = new SqlConnection(); myConnection.ConnectionString = ConnectionString; string sql = "SELECT ID, FirstName FROM Employee"; SqlDataAdapter myAdapter = new SqlDataAdapter(sql, myConnection); DataSet myDataSet = new DataSet("Employee"); myAdapter.Fill(myDataSet, "Employee"); dataGrid1.DataSource = myDataSet.DefaultViewManager; }
}</source>
Programmatic Data Display
<source lang="csharp">using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Windows.Forms;
class ProgrammaticDataDisplay : Form { public ProgrammaticDataDisplay() { InitializeComponent(); string connectionString = "server=localhost;Trusted_Connection=yes; database=northwind"; string commandString = "Select CompanyName, ContactName, ContactTitle, Phone, Fax from Customers"; SqlDataAdapter DataAdapter = new SqlDataAdapter( commandString, connectionString ); DataSet DataSet = new DataSet(); DataAdapter.Fill( DataSet, "Customers" ); dataGridView1.DataSource = DataSet.Tables["Customers"].DefaultView; } private void InitializeComponent() { this.dataGridView1 = new System.Windows.Forms.DataGridView(); ( ( System.ruponentModel.ISupportInitialize ) ( this.dataGridView1 ) ).BeginInit(); this.SuspendLayout(); this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; this.dataGridView1.Location = new System.Drawing.Point( 0, 0 ); this.dataGridView1.Name = "dataGridView1"; this.dataGridView1.Size = new System.Drawing.Size( 579, 262 ); this.dataGridView1.TabIndex = 0; this.AutoScaleBaseSize = new System.Drawing.Size( 5, 13 ); this.ClientSize = new System.Drawing.Size( 579, 262 ); this.Controls.Add( this.dataGridView1 ); this.Name = "ProgrammaticDataDisplay"; this.Text = "Programmatic Data Display"; ( ( System.ruponentModel.ISupportInitialize ) ( this.dataGridView1 ) ).EndInit(); this.ResumeLayout( false ); }
private System.Windows.Forms.DataGridView dataGridView1; [STAThread] static void Main() { Application.Run( new ProgrammaticDataDisplay() ); } }</source>