2010-07-21 5 views
1

ASP.NET에서 무언가에 참가자 목록에없는 학생 목록을 표시하는 프로그래밍중인 학생 이름을 클릭하면 간단한 설명이 표시됩니다. 사용자가 세부 정보를 요약하여 사용자가 올바른 사람을 선택하도록 할 수 있습니다.SqlDataSource.Select를 사용하여 실행 한 저장 프로 시저의 결과 집합에 액세스

내 코드는 현재 ID를 올바르게 가져 와서 내 저장 프로 시저에 매개 변수로 추가하고 프로 시저를 실행합니다. 나는 다음과 같은 오류 얻을 결과에 액세스하려고 할 때

protected void LinkButton_OnClick(object sender, EventArgs e) 
{ 
    LinkButton l = (LinkButton)sender; 
    HiddenField hfv = (HiddenField)l.Parent.FindControl("hfAdmissionNumber"); 
    SqlDataSource2.SelectParameters.Clear(); 
    SqlDataSource2.DataSourceMode = SqlDataSourceMode.DataReader; 
    SqlDataSource2.SelectCommandType = SqlDataSourceCommandType.StoredProcedure; 
    Parameter hfcParam = new Parameter(); 
    hfcParam.Type = TypeCode.Int32; 
    hfcParam.DefaultValue = hfv.Value; 
    hfcParam.Name = "@AdmissionNumber"; 
    hfcParam.Direction = System.Data.ParameterDirection.Input; 
    SqlDataSource2.SelectParameters.Insert(0, hfcParam); 
    System.Data.DataView dv = (System.Data.DataView)SqlDataSource2.Select(DataSourceSelectArguments.Empty); 
} 

그러나 : 디버깅시

System.NullReferenceException: Object reference not set to an instance of an object. 

을 그냥 실행하면 어떤 결과가 반환 ...하지만이있을하지 않는 것 동일한 데이터로 SQL Server에서 저장 프로 시저를 실행하면 예상대로 단일 행이 반환됩니다.

필드에 바인딩 할 수 있도록이 결과에 액세스하려면 어떻게해야합니까?

는 (I는 SQL 서버 2008으로, 비주얼 스튜디오 2008에서 ASP.NET 3.5 있어요)

답변

0

예외는 당신에게 오류에 대한 좀 더 많은 정보는 오류가 발생한 특정 라인을 말해야한다 . 정확히 무엇이 null인지 판별하고이를 방지하는 방법을 찾으려면이 행을 구체적으로 조사해야합니다.

예를 들어, 위의 코드에서 나는 다음과 같은 있다고 볼 수있다 :이 경우 (명확성을 위해 제거 중간 코드)

HiddenField hfv = (HiddenField)l.Parent.FindControl("hfAdmissionNumber"); 
hfcParam.DefaultValue = hfv.Value; 

, 그 잠재적 FindControl 방법을 수익을 볼 수 있습니다 null 인 경우, 이 null 인 경우 hfv.Value을 시도하면 NullReferenceException이 발생합니다.

정확히 무엇이 null인지 파악할 수 있다면 문제가 무엇인지 더 잘 알 수 있습니다. ASP.NET 포럼에 제공

+0

내가 말했듯이, 그것은이다. 따라서 다음과 같은 SqlDataSource2.Select 문 뒤에 코드를 사용하십시오. System.Data.DataRow dr = dv.Table.Rows [0]; 오류가 발생했습니다. 디버깅 할 때 검색된 결과가 실제로 저장되는 위치를 찾을 수 없습니다. 이것이 궁극적으로 내 질문입니다.이 결과에 어떻게 액세스합니까? 내가 제대로하고 있지만 오류가 발생하고, 또는 그것을 잘못 따라서 잘못하고 있습니까? – VickyB

+0

@VickyB - SQL 프로파일 러를 사용하여 기대했던 매개 변수로 예상되는 SQL을 실행하는지 확인하기 위해 실행 된 정확한 SQL 문을 기록해 보았습니까? – Justin

+0

SQL 프로파일 러를 실행했는데 프로 시저를 실행하지 않는 것 같습니다 ... SP 이벤트 클래스 중 어느 것도 텍스트 데이터에 내 프로 시저를 표시하지 않습니다. 내 프로 시저가 실제로 실행되고 있지 않다는 의미입니까? – VickyB