Csharp/CSharp Tutorial/ADO.Net/DataBinding ListBox

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

Binding ListBox to a Database table

<source lang="csharp">using System; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; public class ListBoxBindingTable : System.Windows.Forms.Form {

 private System.Windows.Forms.ListBox employeeList;
 private System.ruponentModel.Container components = null;
 public ListBoxBindingTable()
 {
   InitializeComponent();
   string connectionString = "server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI;";
   string commandString = "Select ID, FirstName from Employee";
   SqlDataAdapter dataAdapter = new SqlDataAdapter(commandString, connectionString);
   DataSet dataSet = new DataSet();
   dataAdapter.Fill(dataSet,"Employee");
   DataTable dataTable = dataSet.Tables[0];
   employeeList.DataSource= dataTable;
   employeeList.DisplayMember = "Employee";
 }
 protected override void Dispose( bool disposing )
 {
   if( disposing )
   {
     if (components != null) 
     {
       components.Dispose();
     }
   }
   base.Dispose( disposing );
 }
 private void InitializeComponent()
 {
   this.employeeList = new System.Windows.Forms.ListBox();
   this.SuspendLayout();
   this.employeeList.Location = new System.Drawing.Point(8, 8);
   this.employeeList.Name = "employeeList";
   this.employeeList.Size = new System.Drawing.Size(272, 95);
   this.employeeList.TabIndex = 0;
   this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
   this.ClientSize = new System.Drawing.Size(292, 133);
   this.Controls.AddRange(new System.Windows.Forms.Control[] {this.employeeList});
   this.Name = "ListBoxBindingTable";
   this.Text = "ListBoxBindingTable";
   this.ResumeLayout(false);
 }
 [STAThread]
 static void Main() 
 {
   Application.Run(new ListBoxBindingTable());
 }

}</source>

Data Binding: ListBox

<source lang="csharp">using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; using System.Data.OleDb; using System.Data.SqlClient; public class ListBoxDataBindingDatabase : System.Windows.Forms.Form {

 private System.Windows.Forms.DataGrid dataGrid1;
 private System.Windows.Forms.ListBox listBox1;
 private System.ruponentModel.Container components = null;
 public ListBoxDataBindingDatabase()
 {
   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.listBox1 = new System.Windows.Forms.ListBox();
   ((System.ruponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();
   this.SuspendLayout();
   // 
   // dataGrid1
   // 
   this.dataGrid1.DataMember = "";
   this.dataGrid1.Location = new System.Drawing.Point(8, 24);
   this.dataGrid1.Name = "dataGrid1";
   this.dataGrid1.Size = new System.Drawing.Size(192, 232);
   this.dataGrid1.TabIndex = 0;
   // 
   // listBox1
   // 
   this.listBox1.Location = new System.Drawing.Point(216, 32);
   this.listBox1.Name = "listBox1";
   this.listBox1.Size = new System.Drawing.Size(104, 212);
   this.listBox1.TabIndex = 1;
   // 
   // ListBoxDataBindingDatabase
   // 
   this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
   this.ClientSize = new System.Drawing.Size(480, 277);
   this.Controls.AddRange(new System.Windows.Forms.Control[] {this.listBox1, this.dataGrid1});
   this.Name = "ListBoxDataBindingDatabase";
   this.Text = "ListBoxDataBindingDatabase";
   this.Load += new System.EventHandler(this.ListBoxDataBindingDatabase_Load);
   ((System.ruponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
   this.ResumeLayout(false);
 }
 [STAThread]
 static void Main() 
 {
   Application.Run(new ListBoxDataBindingDatabase());
 }
 private void FillDataGrid()
 {
   string ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\Northwind.mdb";
   OleDbConnection conn = new OleDbConnection(ConnectionString);
   string SQL = "SELECT * FROM Customers";
   conn.Open();
   OleDbDataAdapter adapter = new OleDbDataAdapter(SQL, conn);
   DataSet ds = new DataSet("Customers");
   adapter.Fill(ds, "Customers");
   dataGrid1.DataSource = ds.DefaultViewManager;
   conn.Close();    
 }
 private void FillListBox()
 {
   string ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\Northwind.mdb";
   OleDbConnection conn = new OleDbConnection(ConnectionString);
   string SQL = "SELECT * FROM Customers";
   conn.Open();
   OleDbDataAdapter adapter = new OleDbDataAdapter(SQL, conn);
   DataSet ds = new DataSet("Customers");
   adapter.Fill(ds, "Customers");
   listBox1.DataSource = ds.DefaultViewManager;
   listBox1.DisplayMember = "CustomerID";
   conn.Close();    
 }
 private void ListBoxDataBindingDatabase_Load(object sender, System.EventArgs e)
 {
   FillListBox();
   FillDataGrid();
 }

}</source>

Fill ListBox with data from a DataReader

<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 ListBoxFillFromDataReader : System.Windows.Forms.Form {

   private System.Data.SqlClient.SqlConnection connection;
   private System.Data.DataSet dataSet;
   private System.Data.SqlClient.SqlCommand command;
   private System.Data.SqlClient.SqlDataAdapter dataAdapter;
   private System.Windows.Forms.ListBox lbBugs;
 private System.ruponentModel.Container components = null;
 public ListBoxFillFromDataReader()
 {
   InitializeComponent();
       string connectionString = "server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI;";
   using (connection = new System.Data.SqlClient.SqlConnection(connectionString))
   {
     connection.Open();
     using(dataSet = new System.Data.DataSet())
     {
       dataSet.CaseSensitive=true;
       string commandString = "Select ID, FirstName from Employee";
       command = new System.Data.SqlClient.SqlCommand();
       command.Connection=connection;
       command.rumandText= commandString;
       using (SqlDataReader dataReader = command.ExecuteReader())
       {
         while (dataReader.Read())
         {
           object bugID = dataReader["ID"];
           object description = dataReader["FirstName"];
           lbBugs.Items.Add(bugID.ToString() + ": " +  description.ToString());
         }
       }  
     }    
   }      
   }
 protected override void Dispose( bool disposing )
 {
   if( disposing )
   {
     if (components != null) 
     {
       components.Dispose();
     }
   }
   base.Dispose( disposing );
 }
 private void InitializeComponent()
 {
       this.lbBugs = new System.Windows.Forms.ListBox();
       this.SuspendLayout();
       this.lbBugs.Location = new System.Drawing.Point(16, 8);
       this.lbBugs.Name = "lbBugs";
       this.lbBugs.Size = new System.Drawing.Size(216, 147);
       this.lbBugs.TabIndex = 0;
       this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
       this.ClientSize = new System.Drawing.Size(264, 181);
       this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                     this.lbBugs});
       this.Name = "ListBoxFillFromDataReader";
       this.Text = "ListBoxFillFromDataReader";
       this.ResumeLayout(false);
   }
 [STAThread]
 static void Main() 
 {
   Application.Run(new ListBoxFillFromDataReader());
 }

}</source>

Read data from database table add it to a ListBox

<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 ListBoxTableReadingFill : System.Windows.Forms.Form {

   private System.Data.SqlClient.SqlConnection myConnection;
   private System.Data.DataSet myDataSet;
   private System.Data.SqlClient.SqlCommand myCommand;
   private System.Data.SqlClient.SqlDataAdapter myDataAdapter;
   private System.Windows.Forms.ListBox employeeList;
 private System.ruponentModel.Container components = null;
 public ListBoxTableReadingFill()
 {
   InitializeComponent();
       string connectionString = "server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI;";
       myConnection = new System.Data.SqlClient.SqlConnection(connectionString);
       myConnection.Open();
       myDataSet = new System.Data.DataSet();
       myDataSet.CaseSensitive=true;
       string commandString = "Select ID, FirstName from Employee";
       myCommand = new System.Data.SqlClient.SqlCommand();
       myCommand.Connection=myConnection;
       myCommand.rumandText= commandString;
       myDataAdapter = new SqlDataAdapter();
       myDataAdapter.SelectCommand = myCommand;
       myDataAdapter.TableMappings.Add("Table", "Employee");
       myDataAdapter.Fill(myDataSet);
       DataTable myDataTable = myDataSet.Tables[0];
       
       foreach (DataRow dataRow in myDataTable.Rows)
       {
           employeeList.Items.Add(dataRow["ID"] + ":" + dataRow["FirstName"]  );
       }
   }
 protected override void Dispose( bool disposing )
 {
   if( disposing )
   {
     if (components != null) 
     {
       components.Dispose();
     }
   }
   base.Dispose( disposing );
 }
 private void InitializeComponent()
 {
       this.employeeList = new System.Windows.Forms.ListBox();
       this.SuspendLayout();
       // 
       // employeeList
       // 
       this.employeeList.Location = new System.Drawing.Point(16, 8);
       this.employeeList.Name = "employeeList";
       this.employeeList.Size = new System.Drawing.Size(216, 147);
       this.employeeList.TabIndex = 0;
       // 
       // ListBoxTableReadingFill
       // 
       this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
       this.ClientSize = new System.Drawing.Size(464, 205);
       this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                     this.employeeList});
       this.Name = "ListBoxTableReadingFill";
       this.Text = "ListBoxTableReadingFill";
       this.ResumeLayout(false);
   }
 [STAThread]
 static void Main() 
 {
   Application.Run(new ListBoxTableReadingFill());
 }

}</source>