2013-10-01 17 views
5

sto eseguendo una stored procedure con Dapper in questo modo:Ottenere i nomi dei campi da stored procedure con Dapper

var sprocResult = conn.Query("TestSproc", new {clientID = 2}, commandType: CommandType.StoredProcedure).ToList(); 

posso enumerare i risultati ed elencare i valori. Quello che devo essere in grado di fare è anche enumerare i nomi dei campi che tornano dallo sproc. Non conoscerò questi nomi di campo in fase di progettazione.

Grazie in anticipo.

risposta

9

Quando si utilizza il dynamic API (la Query(...) anziché Query<T>(...), secondo la vostra esempio), ciascuna fila implementa anche IDictionary<string,object>. Quindi, in pratica:

foreach(IDictionary<string,object> row in sprocResult) 
{ 
    var colNames = row.Keys; 
    //... 
} 
+0

Fantastico, grazie mille. – DavidGouge

0

Se la query può restituire nessuna riga, il Query().First().Keys non funziona. In questo caso, è possibile utilizzare ExecuteReader().GetName(i).

Problemi correlati