2012-02-28 10 views
1

私のコードに何が問題なのですか?このコードは、私はC#に変換しますが、エラーを取得し、私のVB .NETプログラムから..ですそれは検索するためのLIKEを使用してデータベースからデータを選択するために使用します。..ここに私のコードです:リストビューの塗りつぶしメソッドでエラーが発生する

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()); 
      } 
     } 

検索フォームには次のコードがあります:

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はObjectではなく、stringで埋められます。 ListViewstringとなりますので、ToString()に電話をかけるか、stringタイプにキャストする必要があります。予想されるタイプがわからない場合、またはstringが予想されない場合は、ToString()を使用してください。 stringが必要な場合は、(string)キャスティングを使用してください。

+0

私はこれを今すぐ取得し、ToString()を次のように追加する各行に追加する必要があります。 Item.Text = num.ToString(); Item.SubItems.Add(dt.Rows [ctr] ["ItemCode"]。ToString()); –

関連する問題