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#中以正确的方式做到这一点?谢谢
您的数据表将填充Object
s,而不是string
s。ListView
需要string
s,因此您需要调用ToString()
或typecast为string
类型。如果您不知道需要什么类型或不需要string
,请使用ToString()
;如果需要string
,请使用(string)
强制转换。