Listview填充方法出错

本文关键字:出错 方法 填充 Listview | 更新日期: 2023-09-27 18:25:56

我的代码出了什么问题?这段代码来自我的VB.NET程序,我将其转换为C#,但出现了错误。。它用于使用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#中以正确的方式做到这一点?谢谢

Listview填充方法出错

您的数据表将填充Objects,而不是strings。ListView需要strings,因此您需要调用ToString()或typecast为string类型。如果您不知道需要什么类型或不需要string,请使用ToString();如果需要string,请使用(string)强制转换。