giovedì 4 ottobre 2012

Caricamento dati da una tabella per una combobox in c#

Il seguente codice illustra come connettersi ad un database (MS Access in questo caso) e prendere dei valori da una tabella per popolare una combobox presente in una Form.
La prima parte è il codice da inserire nel app.config di una windows application; la seconda parte è il caricamento dati.
Ho utilizzato Visual Studio 2008 su Win7 64bit, per lo stesso ambiente ricordarsi di eseguire la compilazione per una platform x86.


Il file app.config
<configuration>
  <configSections/>
  <appSettings>
    <add key="ConnectionString" value="Provider=Microsoft.Jet.OLEDB.4.0;
Data source=C:\db_employee.mdb"/>
  </appSettings>
  <system.web/>
</configuration>
Codice per il popolamento della combobox: ad esempio si può inserire nel "Load" della pagina.
private void Form1_Load(object sender, EventArgs e)
{
 GetDataFromEmployees();
}

private void GetDataFromEmployees()
{
 try
 {
 string connectionString = ConfigurationSettings.AppSettings[
"ConnectionString"];
 using (System.Data.OleDb.OleDbConnection connection = new
 System.Data.OleDb.OleDbConnection(connectionString))
 {
  string sql = "SELECT name, lastname FROM tbl_employees where
 lastname=@rlname";

  System.Data.OleDb.OleDbCommand command = new 
System.Data.OleDb.OleDbCommand(sql, connection);
  command.Parameters.AddWithValue("@rlname", "brown");
  connection.Open();
  System.Data.OleDb.OleDbDataReader reader = command.ExecuteReader();
  ArrayList al = new ArrayList();
  while (reader.Read())
  {
   comboBox1.Items.Add(reader["name"] + " " + reader["lastname"]);
  }
  reader.Close();
  connection.Close();
 }
 }
 catch(Exception e){
 //code here
 }
}
L'output nella figura: