public static IEnumerable<PortalList> GetAll()
{
Database db = DatabaseFactory.CreateDatabase();
DbCommand objComm = db.GetStoredProcCommand("package
name.procedurename", new object[1]);
var result = new List<PortalList>();
using (IDataReader rdr = db.ExecuteReader(objComm))
{
while (rdr.Read())
{
result.Add(Construct(rdr));
}
}
return result;
}
에 'System.AccessViolationException'가 발생하고 내 가게 절차는 내가이getstoredproccommand ("procedurename", 새로운 객체 [1]) Microsoft.Practices.EnterpriseLibrary.Data.dll
PROCEDURE PRC_PROCEDURE (resultset_out OUT TYPES.cursorType)
AS
BEGIN
OPEN resultset_out FOR SELECT * FROM PORTALLISTS;
END PRC_PORTALLISTS_GETALL;
같다 이 라인에서 에러를 가진 DbCommand objComm = db.GetStoredProcCommand("package name.procedurename", new object[1]);
내가 할 경우
이
DbCommand objComm = db.GetStoredProcCommand("package name.procedurename");
오류가 사라지고하지만 IA 이 줄에 같은 오류 [Exception thrown: 'System.AccessViolationException' in Microsoft.Practices.EnterpriseLibrary.Data.dll]
이 나타나면 (IDataReader rdr = db.ExecuteReader(objComm))
을 사용하십시오. 나는 dot.net 프레임 워크 4를 사용하고 Microsoft.Practices.EnterpriseLibrary.Data.dll 버전은 5.0.0.0입니다. 너희들은 나를 도와 줄 수있어?
및 portallistservices.cs에
난 당신이 PARAM 아웃으로resultset_out
이이
public static IEnumerable<PortalList> GetAll()
{
return GetAll(true);
}
private static IEnumerable<PortalList> GetAll(bool forceDataReload)
{
const string cacheKey = "PortalListService_GetAll";
IEnumerable<PortalList> result = null;
if (!forceDataReload)
result = GetFromCache(cacheKey);
if (result == null)
{
result = PortalListRepository.GetAll();
AddToCache(cacheKey, result);
}
return result;
}
심판
아래처럼 PARAMS를 전달할 수 있습니다 object [1]'귀하의 명령에 – programtreasures그게 .. 나는 Listtype 문자열이 동일한 방법이 있습니다. 해당 메서드 코드는 다음과 같습니다. public static List GetAll (string listType) {Database db = DatabaseFactory.CreateDatabase(); DbCommand objComm = db.GetStoredProcCommand ("package name.procedurename", 새 개체 [1], listType); var result = new List (); (IDataReader rdr = db.ExecuteReader (objComm)) while (rdr.Read()) { result.Add (Construct (rdr)); } } 반환 결과; } –
public static List GetAll (string listType) { 데이터베이스 db = DatabaseFactory.CreateDatabase(); DbCommand objComm = db.GetStoredProcCommand ("package name.procedurename", 새 개체 [1], listType); var 결과 = 새 목록 (); (IDataReader rdr = db.ExecuteReader (objComm)) { while (rdr.Read()) { result.Add (Construct (rdr)); } } 반환 결과; }이 코드는 정상적으로 작동합니다. –