我这里有一个代码,显示搜索时从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的所有结果?你能帮助我吗?提前谢谢。
答案 0 :(得分:1)
用此替换你的最后一行。好像你正在为每个项目制作两个ListViewItems?看看它是否有帮助,然后看看这里。
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);
}