2013-07-31 78 views
0

我想從IEnumerable返回結果,我感興趣的是包含我正在尋找的一列。但是,與我有什麼根據會員的建議回答selecting a certain column value from looping in ienumerable我得到一個編譯錯誤:鑄造IEnumerable沒有定義項目

public IEnumerable<Guid> GetGuids(int id) 
{ 
    using (SqlCommand _command = new SqlCommand("StoredProc")) 
    { 
     _command.Connection = new SqlConnection(conString); 
     _command.Connection.Open(); 
     _command.CommandType = CommandType.StoredProcedure; 
     _command.Parameters.AddWithValue("@ItemID", id); 

      return _command.ExecuteReader() 
        .Cast<DbDataRecord>() 
        .Select(r => (Guid)r.Item["GuidColumn"]); 
    } 
} 

錯誤:即DbDataRecord不包含定義Item。 我該如何去做?

回答

3

我相信它應該是:

return _command.ExecuteReader() 
       .Cast<DbDataRecord>() 
       .Select(r =>(Guid) r["GuidColumn"]); 
+0

只是嘗試這樣做,並得到這個:'執行權限被拒絕的對象「StoredProc」,數據庫「名稱」上,架構「dbo'.' – Masriyah

+1

@Masriyah好吧,確保你正在執行存儲過程的帳戶(查看連接字符串)具有相應的權限。 –