2011-10-28 3 views
1

알아낼 수 없습니다이 SqlParameterCollection에 포함되지SqlParameter에는 왜 점점 계속

내가 당겨 봤는데 때 경우 ParameterName와

SqlParameter에이 SqlParameterCollection

에 포함되지 않고, procs를 다른 메서드에서이 벌금과 같이 호출합니다.

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를 사용 하시겠습니까? 그것은 여분의 왕복 여행이지만, 당신은 이미 그 이름을 알고 있습니다. 그것은 Procs를 검사하는 도구입니다. –

답변

0

잘 종류의 당신이 때 첫째로, 나는 매개 변수를 발견하지 것, 나는 그것을 할 수있는 가장 깨끗한 방법이라고 생각이

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

처럼 추가 매개 변수를 수행 매개 변수를 알고 있어야합니다. 이 작업을 수행하기 때문에 매개 변수 컬렉션을 검사하고 매개 변수가 검색되고 있는지 확인하십시오. 내가 알아 낸 것보다 훨씬 더 그렉이 제안한 것과 같은 것을 목표로 삼을 것입니다.

관련 문제