为什么我的由数据表填充的列表框显示“System.Data.DataRow”而不是实际值?

问题描述 投票:0回答:4

我正在尝试使用 C# 从数据库填充列表视图或列表框。我正在使用数据表来获取数据。我正在使用下面的代码。但是列表视图或列表框正在填充类似

"System.Data.DataRow"
文本的内容。我的数据库中还有其他内容。

query = "select itemtag from tbl_inventory order by itemtag";
DataTable dt = con.DataTable(query);
int count = dt.Rows.Count;
if (count >0)
{
    //listView1.Items.Clear();
    listBox1.Items.Clear();
    
    for (int i = 0; i < count; i++)
    {
        //listView1.Items.Add(dt);
        listBox1.Items.Add(dt.Rows[i].ToString());
    }
}

As you see I am getting output like ,我在那里 我的数据库里还有其他东西

c# winforms listbox
4个回答
3
投票

如果您使用列表框,则直接使用 DATASOURCE 属性...

ListBox1.DataSource 
  1. 链接1
  2. 链接2
  3. 链接3

2
投票

除非您的数据表是一维的(在这种情况下,为什么要使用数据表),那么您的代码应该是:

listBox1.Items.Add(dt.Rows[i][columnIndexHere].ToString());

0
投票
 listBox1.Items.Add(dt.Rows[i][0].ToString());

但是,这只会将第一列数据插入列表视图。如果您还想添加子项目,请使用它。

 ListItem li = listBox1.Items.Add(dt.Rows[i][0].ToString());
 li.SubItems.Add(dt.Rows[i][1].ToString());
 li.SubItems.Add(dt.Rows[i][2].ToString());

0
投票

用这个

listBox1.Items.Add(dt.Rows[i][0]+"|"+dt.Rows[i][1] +"vs" + dt.Rows[i][3]);
© www.soinside.com 2019 - 2024. All rights reserved.