2011-10-28 38 views
1

想不通爲什麼我不斷收到包含一個與參數名稱的SqlParameter不受此SqlParameterCollection

與參數名稱的SqlParameter的不受此 SqlParameterCollection

在含有時我一直在拉和在其他方法中調用類似這樣的特效。

proc在該套管中有一個參數@EqId。

List<string> equipTypes = new List<string>(); 

Database db = DatabaseFactory.CreateDatabase("OurDBName"); 
DbCommand cmd = db.GetStoredProcCommand("Get_EquipTypes_By_ID"); 

db.DiscoverParameters(cmd); 
cmd.Parameters["@EqId"].Value = equipID; 

using (IDataReader objReader = db.ExecuteReader(cmd)) 
{ 
    while (objReader.Read()) 
     equipTypes.Add(DataUtility.GetStringFromReader(objReader, "Data")); 
} 
+2

爲什麼你甚至會使用DiscoverParameters?這是一次額外的往返,但你已經知道這個名字。這是針對探測特效的工具。 –

回答

2

做你加個參數是這樣

cmd.Parameters.AddWithValue("@EqId", equipID); 

我認爲這是做最徹底的方法,以及那種:)

0

首先,我不會發現的參數,當你意識到參數。既然你正在這樣做,檢查參數集合,並確保參數正在被發現。你有這樣的想法,我會瞄準更像格雷格建議的東西。

相關問題