2011-12-02 7 views
0

데이터 테이블에서 목록보기를 채우려하고 있지만 코드를 실행할 때 알아낼 수없는 이상한 오류가 나타납니다. 목록보기 항목을 목록보기 컨트롤에 추가하십시오.

코드 :

 DataTable allTracks = tracks.getByMedia(); 

     for (int i = 0; i < allTracks.Rows.Count; i++) { 
      DataRow r = allTracks.Rows[i]; 

      ListViewItem lvi = new ListViewItem(); 
      lvi.Text = r["track_number"].ToString(); 
      lvi.SubItems.Add(r["track_name"].ToString()); 

      lvTracks.Items.Add(lvi); 
     } 

오류 :

프로그램은 LVI 변수가 설정 또는 null,하지만 난 디버그 모드로 갈 때, 나는 그 LVI이 볼 수없는 것을 생각
Object reference not set to an instance of an object. 

확실히 초기화되고 설정되고 포함되어 있습니다.

right text + sub item . :S 

lvTracks.Items.Add(lvi); 
Messagebox.Show(lvi.Text) 

그것은 올바른 값을 표시하고 오류를 트리거하지 않습니다 ....있는 ListViewItem에 분명히 아무 문제가 없습니다

+0

이 오류가 발생한 코드 줄을 정확하게 디버깅하는 동안? –

+0

이것이 맞는지 확실하지 않지만 foreach 루프 인 foreach (allTracks.Rows의 DataRow r)를 사용해 볼 수 있습니다. 이렇게하면 오류가 발생할 가능성이 줄어 듭니다. – Tom

+0

lvTracks가 아직 초기화되지 않은 것 같습니다. (dooo! Code is Now;) – jhoevenaars

답변

1

; 데이터 행의 필드 이름 중 하나가 올바르지 않다고 의심됩니다.

+0

모든 필드 이름이 정확하고 필드가 비어 있거나 null 인 것은 확인했습니다. 이 줄을 다음과 같이 바꾸면 : MessageBox.Show (r [ "track_number"]. ToString() + ""+ r [ "track_name"]. ToString()); 그것은 정확한 숫자 + 이름을 보여줍니다 – jhoevenaars

0

null 값을 String으로 변환하는 것으로 필드 중 하나에 null 값이 포함 된 것처럼 보입니다. 오류가 발생합니다. 나는 그것이

DataTable allTracks = tracks.getByMedia(); 

    foreach(DataRow r in allTracks.Rows) { 

     string track_number= r["track_number"]!=System.DBNull.Value?r["track_number"].ToString():""; 
     string track_name=r["track_name"]!=System.DBNull.Value?r["track_name"].ToString():""; 
     ListViewItem lvi = new ListViewItem(); 
     lvi.Text = track_number; 
     lvi.SubItems.Add(track_name); 
     if(lvTracks!=null) 
     { 
     lvTracks.Items.Add(lvi); 
     } 
    } 

이 존재 함을 유의하시기 바랍니다 시도 루프

의 모든 시간을 intantiated됩니다 beacuase ListViewItem이 어떤 경우에 널 생각하지 말아

두 개의 서로 다른 널 (null)이이 닷넷 CLR에 대한 하나 ' null '이고 다른 하나는'Syatem.DBNull.Value '입니다.

+0

나는 이것을 시도했지만 이전에했던 것과 같은 오류가 발생했습니다. lvTracks 목록보기에서 뭔가 잘못 생각한 것 같습니다 ... – jhoevenaars

+1

Listview 'lvTracks'가 있는지 확인 했습니까? null이 아니겠습니까? bcoz null 개체에 아무것도 추가 오류가 throw됩니다.이 wierd 수 있지만 Listview 동적 경우 발생할 수 있습니다. if (lvtrack! = null) – Akshita

+0

예 (l)는 오류였습니다. lvTracks는 호출을 잊어 버린 함수에 의해 동적으로 만들어졌습니다. – jhoevenaars

관련 문제