Dot-Net

使用 Dapper 從儲存過程中獲取欄位名稱

  • October 20, 2017

我正在使用 Dapper 執行一個儲存過程,如下所示:

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

我可以列舉結果並列出值。不過,我需要做的是列舉從儲存過程返回的欄位名稱。在設計時我不會知道這些欄位名稱。

提前致謝。

使用dynamicAPI 時(根據您的範例,Query(...)代替Query<T>(...)),每一行還實現IDictionary<string,object>. 所以基本上:

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

如果查詢可能不返回任何行,則Query().First().Keys不起作用。在這種情況下,您可以使用ExecuteReader().GetName(i).

引用自:https://stackoverflow.com/questions/19112567