Litigando con le comboBox

csharp Un paio di cose da sapere sulle comboBox in C# / WindowsForms:

  • La generazione automatica del codice produce un controllo che non serve a nulla
  • Nell’ipotesi piu classica, ovvero di avere una form che mostra il contenuto di una tabella con collegamenti ad atre tabelle mediante id, la soluzione piu comoda per permettere l’editing è la comboBox
  • Per "caricare" i dati da un altra tabella bisogna associare a ComboBox.DataSource una bindingSource avendo cura di specificare in ComboBox.DisplayMember il nome del campo da visualizzare, e in ComboBox.ValueMember il nome del campo contenente la chiave su cui è basato il collegamento tra le due tabelle (in genere Id)
  • Il dataBinding va eseguito sulla proprietà "SelectedValue"

 

Esempio:

this.MycomboBox.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.PrimaryBindingSource, "nomecampo_contenente_id", true));
this.MycomboBox.DataSource = this.SecBindingSource;
this.MycomboBox.DisplayMember = "Nome";
this.MycomboBox.ValueMember = "Id";

Appunti .net

net.jpgInauguro un post di appunti vari in ambiente .net/c#. Chissà … magari può tornare utile …

ConfigurationManager

Utilizzare la stringa di connessione memorizzata nel file di config è una buona pratica e questa stringa è accessibile tramite questa semplice riga di codice :

string constr = System.Configuration.ConfigurationManager.ConnectionStrings[“nome connessione”].ConnectionString;

Ma bisogna ricordarsi di aggiungere tra i riferimenti System.configuration

Date Format

La tecnica detta “Date formatting” è quella tecnica che permette di effettuare un controllo sulla formattazione di una data in formato stringa. Il framework rappresenta le date con il tipo di dato DateTime; questo tipo di dato implementa l’interfaccia IFormattable che gli permette di essere appunto formattato in una stringa, attraverso uno degli overload del metodo ToString(), potendo scegliere tra vari tipi di formati.
Il formato scelto va definito passando al metodo ToString() una stringa di testo contenente il pattern corrispondente.
Ecco l’elenco di tutti i pattern disponibili (prendendo come data il 18/09/2005 15:00):

Via AspCode.it

Esempio usando un DataReader :

((DateTime)MyReader[2]).ToString(“dd/MM/yyyy”);

Settare il livello di sicurezza di Access avviato tramite PIA

(Access.ApplicationClass).AutomationSecurity = Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityLow;

E si può dire addio alle fastidiose richieste di conferma…