Mattino.Come si usa una stringa come indice?
Edizione:
Ho una classe denominata Rapporti. Due costruttori. Uno non consente parametri, l'altro un array di stringhe. Gli array di stringhe dovrebbero essere i report che vorrebbero visualizzare. Quello che mi piacerebbe fare è la seguente:
string strSQL = this.Queries[strReportName];
Ho la sensazione che sia possibile perché nel dataGridView che sto utilizzando, ottengo l'indice di colonna da:
int nColumnIndex = dgvParts.Columns[strColumnName].Index;
Sia di coloro che gli esempi usano una stringa per determinare quale valore nella matrice essi recuperano, ma non sono sicuro di come farlo. Qualcuno può darmi un aiuto? Qualsiasi aiuto è apprezzato.
Per gli editor e le mod: Sì, i report si collegano liberamente con l'altro post che ho sul caricamento dinamico delle DLL, ma vorrei mantenere ancora aperto l'altro. Il mio capo e io abbiamo deciso per il breve termine, avremo una sola DLL e tutto è codificato, ma a lungo termine vogliamo fare cadere dinamicamente le DLL come report, quindi per favore non etichettatelo come duplicato. Ho in programma questo fine settimana per cercare di implementare i metodi che mi sono stati dati nell'altro thread. Grazie.
Edit - parte 2 della domanda: Ok, ecco la mia classe come è adesso:
public class Queries
{
#region Report Queries
#region Missing Code
string strMissingCode = "SELECT * FROM PARTS WHERE CODE IS NULL OR CODE = ''";
#endregion
#endregion
}
mi piacerebbe cambiarlo in qualcosa di simile:
public class Queries : Dictionary<string, string>
{
}
Ma non voglio che debbano usare un costruttore per istanziarlo. Voglio statica di sorta in modo da poter eseguire codice come questo:
class Reports
{
private List<ReportRecord> _lstRecrods = new List<ReportRecord>();
public List<ReportRecord> Records { get { return _lstRecords; } }
public Reports(string[] strDisplayedReports)
{
foreach (string strReportTitle in strDisplayedReports)
{
this.BuildReportList(strReportTitle);
}
}
private void BuildReportList(string strReportTitle)
{
using (DataSet ds = Database.GetDataSet(Queries[strReportTitle]))
{
...
}
}
}
Come faccio a farlo statica di sorta per cui non devo istanziare query? Grazie ragazzi e ragazze.
Gli indicizzatori statici non sono (per nessun motivo particolarmente valido) non consentito. http://stackoverflow.com/questions/154489/are-static-indexers-not-supported-in-c – spender
lol. Stavo solo leggendo un thread che lo coinvolge su un altro sito a riguardo. Sembrava che l'avesse risolto, ma se lui dice di no qui, allora è no. Dern. :) Grazie. – XstreamINsanity