2012-02-28 4 views
1

내 코드에 어떤 문제가 있습니까?Listview 채우기 메서드가 오류를 가져옵니다.

public void byItemCode(ListView LV, String SearchBox) 
     { 
      try 
      { 
       con.Open(); 

       ds.Tables.Add(dt); 
       OleDbDataAdapter da = new OleDbDataAdapter("SELECT ItemCode, Title, Genre, Film, YearReleased, Classification, NumberOfDiscs FROM tblDVDInventory WHERE ItemCode LIKE '%" + SearchBox + "%' ORDER BY Title", con); 
       da.Fill(dt); 

       int num = 1; 

       for (int ctr = 0; ctr <= dt.Rows.Count - 1; ctr++) 
       { 
        ListViewItem Item = new ListViewItem(); 
        Item.Text = num; 
        Item.SubItems.Add(dt.Rows[ctr]["ItemCode"]); 
        Item.SubItems.Add(dt.Rows[ctr]["Title"]); 
        Item.SubItems.Add(dt.Rows[ctr]["Genre"]); 
        Item.SubItems.Add(dt.Rows[ctr]["Film"]); 
        Item.SubItems.Add(dt.Rows[ctr]["YearReleased"]); 
        Item.SubItems.Add(dt.Rows[ctr]["Classification"]); 
        Item.SubItems.Add(dt.Rows[ctr]["NumberOfDiscs"]); 
        LV.Items.Add(Item); 

        num = num + 1; 
       } 

       con.Close(); 
      } 
      catch (Exception error) 
      { 
       MessageBox.Show(error.ToString()); 
      } 
     } 

:이 코드는 ... 검색을위한 LIKE를 사용하여 데이터베이스에서 데이터를 선택하는 데 사용됩니다 나는 C 번호로 변환 내 비주얼 베이직 .NET 프로그램에서하지만 오류를 가져옵니다 .. 여기 내 코드입니다 그런 다음 검색 양식에 다음 코드를 입력하십시오.

var Search = new SearchMethods(); 

       if (cmbSearchBy.Text == "Item Code") 
       { 
        lvwInventory.Items.Clear(); 
        Search.byItemCode(lvwInventory, txtSearch.Text); 
       } 

이 방법을 C#으로 올바르게 수행하는 방법이 궁금하십니까? 감사.

+0

아마도 SubItems를 초기화해야합니다. – Joe

+0

아마도 Joe의 답변 일 수도 있지만 정답을 원하면 오류를 게시해야합니다. – zclark

+0

'System.Windows.Forms.ListViewItem.ListViewSubCollectionItems. (Add) String'에 가장 적합한 오버로드 된 메서드가 일치합니다. –

답변

1

귀하의 Datatable은 Objects로 기입되며 string이 아닙니다. ListViewstring을 원하므로 ToString()으로 전화하거나 string 유형으로 타이핑해야합니다. 예상 유형을 모르거나 string을 예상하지 않으면 ToString()을 사용하십시오. string이 필요하면 캐스팅 (string)을 사용하십시오.

+0

지금 얻었습니다. ToString()을 다음과 같이 추가해야합니다. Item.Text = num.ToString(); Item.SubItems.Add (dt.Rows [ctr] [ "ItemCode"]. ToString()); –

관련 문제