Lavoro spesso con applicazioni legate ai dati con WinForms; i record vengono estratti da un database e aggiornati in un'applicazione client che scrivo. Le stored procedure vengono utilizzate per tutte le transazioni di database nel client.
Ho bisogno di fare riferimento a livello di codice alle colonne del database, ad esempio per formattare un valore in dollari.
resultsTable.Columns[<index>].DefaultCellStyle.Format = "$0.00"
Non apprezzo strongmente l'uso di indici interi codificati.
Ho giocato con le enumerazioni, in questo modo:
enum Columns
{
ID,
OrderID,
Notes,
CustomerName,
AssembledBy,
Status,
CreateDate
}
Ma facendo questo, devo sempre fare un cast esplicito resultsTable.Columns[(int)Columns.CreateDate]
e devo aggiornare l'enumerazione se la procedura memorizzata cambia.
Posso fare riferimento alle colonne per nome resultsTable.Columns["create_date"]
. Questo è facile da leggere ma sembra molto fragile.
Qual è un buon modo per fare riferimento alla colonna che sto cercando? Mi piacerebbe un modo dinamico per ottenere gli indici delle colonne, ma non so da dove iniziare.