Csharp/C Sharp/Database ADO.net/Data Bind DataGrid

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Bind 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.ruponentModel.Container components = null;
       public Form1()
       {
           InitializeComponent();
       }
       private void InitializeComponent(){
        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(8, 8);
        this.dataGrid1.Name = "dataGrid1";
        this.dataGrid1.Size = new System.Drawing.Size(608, 256);
        this.dataGrid1.TabIndex = 0;
        this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
        this.ClientSize = new System.Drawing.Size(624, 272);
        this.Controls.Add(this.dataGrid1);
        this.Name = "Form1";
        this.Text = "Form1";
        this.Load += new System.EventHandler(this.Form1_Load);
        ((System.ruponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
        this.ResumeLayout(false);
     }
     static void Main() {
           Application.Run(new Form1());
     }
     private void Form1_Load(object sender, System.EventArgs e){
        string connString = "server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI";
        string sql = @"select * from employee";
        SqlConnection conn = new SqlConnection(connString);
        SqlDataAdapter da = new SqlDataAdapter(sql, conn);
        DataSet ds = new DataSet();
        da.Fill(ds, "customers");
        // Bind the data table to the data grid
        dataGrid1.SetDataBinding(ds, "customers");
     }
   }


      </source>


Bind two DataGrids with many to many mapping

<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.Data.DataSet dataSet1;
     private System.ruponentModel.Container components = null;
     public Form1() {
       InitializeComponent();
     }
     private void InitializeComponent(){
       this.dataGrid1 = new System.Windows.Forms.DataGrid();
       this.dataSet1 = new System.Data.DataSet();
       ((System.ruponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();
       ((System.ruponentModel.ISupportInitialize)(this.dataSet1)).BeginInit();
       this.SuspendLayout();
       this.dataGrid1.DataMember = "";
       this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;
       this.dataGrid1.Location = new System.Drawing.Point(0, 0);
       this.dataGrid1.Name = "dataGrid1";
       this.dataGrid1.Size = new System.Drawing.Size(400, 200);
       this.dataGrid1.TabIndex = 0;
       this.dataSet1.DataSetName = "NewDataSet";
       this.dataSet1.Locale = new System.Globalization.CultureInfo("en-US");
       this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
       this.ClientSize = new System.Drawing.Size(400, 196);
       this.Controls.Add(this.dataGrid1);
       this.Name = "Form1";
       this.Text = "Form1";
       this.Load += new System.EventHandler(this.Form1_Load);
       ((System.ruponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
       ((System.ruponentModel.ISupportInitialize)(this.dataSet1)).EndInit();
       this.ResumeLayout(false);
     }
     [STAThread]
     static void Main() {
       Application.Run(new Form1());
     }
     private void Form1_Load(object sender, System.EventArgs e) {
        string connString = "server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI";
        string qry1 = @"select * from employee ";
        string qry2 = @"select * from order";
        string sql = qry1 + qry2;
        SqlConnection conn = new SqlConnection(connString);
        SqlDataAdapter da = new SqlDataAdapter(sql, conn);
   
        da.TableMappings.Add("Table", "employee");
        da.TableMappings.Add("Table1", "order");
        da.Fill(dataSet1);
        DataRelation dr = new DataRelation(
           "employeeorders",
           dataSet1.Tables[0].Columns["employeeid"], 
           dataSet1.Tables[1].Columns["employeeid"]
           );
        dataSet1.Relations.Add(dr);
        dataGrid1.SetDataBinding(dataSet1, "employees");
     }
   }


      </source>


DataGrid Update: edit a table by binding component

<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.Button buttonUpdate;
     private System.Data.DataSet dataSet1;
     private System.Data.SqlClient.SqlCommand sqlCommand1;
     private System.ruponentModel.Container components = null;
     private SqlCommandBuilder cb;
     private SqlDataAdapter da;
     public Form1() {
        InitializeComponent();
     }
     private void InitializeComponent(){
        this.dataGrid1 = new System.Windows.Forms.DataGrid();
        this.buttonUpdate = new System.Windows.Forms.Button();
        this.dataSet1 = new System.Data.DataSet();
        this.sqlCommand1 = new System.Data.SqlClient.SqlCommand();
        ((System.ruponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();
        ((System.ruponentModel.ISupportInitialize)(this.dataSet1)).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(440, 208);
        this.dataGrid1.TabIndex = 0;
        this.buttonUpdate.Location = new System.Drawing.Point(191, 232);
        this.buttonUpdate.Name = "buttonUpdate";
        this.buttonUpdate.TabIndex = 1;
        this.buttonUpdate.Text = "Update";
        this.buttonUpdate.Click += new System.EventHandler(this.buttonUpdate_Click);
        this.dataSet1.DataSetName = "NewDataSet";
        this.dataSet1.Locale = new System.Globalization.CultureInfo("en-US");
        this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
        this.ClientSize = new System.Drawing.Size(456, 272);
        this.Controls.Add(this.buttonUpdate);
        this.Controls.Add(this.dataGrid1);
        this.Name = "Form1";
        this.Text = "Form1";
        this.Load += new System.EventHandler(this.Form1_Load);
        ((System.ruponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
        ((System.ruponentModel.ISupportInitialize)(this.dataSet1)).EndInit();
        this.ResumeLayout(false);
     }
     static void Main() {
        Application.Run(new Form1());
     }
     private void Form1_Load(object sender, System.EventArgs e){
        string connString = "server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI";
        string sql = @"select * from employee ";
        SqlConnection conn = new SqlConnection(connString);
        sqlCommand1 = new SqlCommand(sql, conn);
        da = new SqlDataAdapter();
        da.SelectCommand = sqlCommand1;
        cb = new SqlCommandBuilder(da);
        da.Fill(dataSet1, "employee");
        dataGrid1.SetDataBinding(dataSet1, "employee");
     }
     private void buttonUpdate_Click(object sender, System.EventArgs e) {
        da.Update(dataSet1, "employee"); 
     }
   }


      </source>