如何将所有数据结果显示到listview?

时间:2014-03-13 17:21:36

标签: c#

我这里有一个代码,显示搜索时从sqldatabase到listview的数据。

 int flag = 0;

        connectionstatus();

        SqlCommand cmd = new SqlCommand("SELECT *FROM SampleDatabase WHERE IdNo=@IdNo", conn);
        cmd.Parameters.Add("@IdNo", SqlDbType.VarChar).Value = txtIdNo.Text;
        SqlDataReader objRead = cmd.ExecuteReader();
        lvlist.Items.Clear();
        while (objRead.Read())
        {
            if ((txtIdNo.Text) == (objRead["IdNo"].ToString()))
            {
                flag = 1;
                break;
            }
        }
        if (flag == 1)
        {
            ListViewItem list = new ListViewItem(basa["FID"].ToString());
            list.SubItems.Add(objRead["FullName"].ToString());
            list.SubItems.Add(objRead["Age"].ToString());
            list.SubItems.Add(objRead["Gender"].ToString());
            list.SubItems.Add(objRead["Relationship"].ToString());
            list.SubItems.Add(objRead["SkillnOccupation"].ToString());
            lvlist.Items.AddRange(new ListViewItem[] { list });
        }

我的问题是,当我搜索并且数据库具有相同IdNo的数据时,它只显示1个结果。如何显示具有相同IdNo的所有结果?你能帮助我吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

用此替换你的最后一行。好像你正在为每个项目制作两个ListViewItems?看看它是否有帮助,然后看看这里。

Add item to Listview control

lvlist.Items.Add(list);

答案 1 :(得分:1)

将项目填充代码放在循环中:

    while (objRead.Read())
    {
        ListViewItem list = new ListViewItem(basa["FID"].ToString());
        list.SubItems.Add(objRead["FullName"].ToString());
        list.SubItems.Add(objRead["Age"].ToString());
        list.SubItems.Add(objRead["Gender"].ToString());
        list.SubItems.Add(objRead["Relationship"].ToString());
        list.SubItems.Add(objRead["SkillnOccupation"].ToString());
        lvlist.Items.Add(list);
    }