从datatable(windows窗体)填充listview或listbox

时间:2014-02-22 04:16:32

标签: c# winforms listview listbox

我正在尝试使用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 "System.Data.DataRow", where I have something else in my database][1]

任何帮助?

4 个答案:

答案 0 :(得分:3)

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

ListBox1.DataSource 
  1. Link1
  2. Link2
  3. Link3

答案 1 :(得分:2)

除非你的DataTable是一维的(在这种情况下,你为什么使用DataTable),那么你的代码应该是:

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

答案 2 :(得分:0)

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

但是,这只会将第一列数据插入到listview中。如果你想添加子项,那么就使用它。

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

答案 3 :(得分:0)

使用此

listBox1.Items.Add(dt.Rows[i][0]+"|"+dt.Rows[i][1] +"vs" + dt.Rows[i][3]);