C#按button查询listview中与textbox输入信息相匹配的内容
我要在查询button前textbox中输入查询字符后按查询button然后listview要显示与之相关的内容如我输入:路listview要把路人甲显示在最前面同时如果...
我要在查询button前textbox中输入查询字符后 按查询button 然后listview要显示与之相关的内容 如我输入:路 listview要把路人甲显示在最前面 同时如果我输入:路人甲 listview中路人甲这一项所有子项显示在相对应的textboxname、textboxsex、textboxnum、textboxaddress、textboxremark中 具体代码最好 access数据表中所有数据已成功显示在listview中了 急 不回答问题的别装B 你觉得你很厉害请直接用代码代替口水
谢谢各位前辈老师认真解答 展开
谢谢各位前辈老师认真解答 展开
5个回答
展开全部
new DataTable().Select("");
从你代码中 看出dt是全局变量 那么你直接在你button事件中写
dt.Select();
括号里面 输入查询条件 例如:
Select();//全部查出来
Select(过滤条件);//根据过滤条件进行过滤,如Select("name like '%张三%'");
Select(过滤条件,排序字段);//过滤,并排序,如Select("name like '%张三%'",sex);
返回DataRow[] 然后继续你加载里面的循环绑定即可 (把该方法公用) 改成如下:
private void BindRow(DataRow[] row)
{
foreach (DataRow item in row)
{
//里面代码
}
//此处代码
//你原来的一样 只是变成方法而已
}
然后加载From5_load调用:
BindRow(dt.Rows);
点击事件调用:
BindRow(dt.Select(条件));
根据该方法 可以实现 搜索和你说的显示数据到文本框
dt.Select(条件) 返回的是DataRow数组 如果是一条数据 然后你把它提取出来显示到文本框不就行了? 如果是多条 就是搜索 这样又可以进行搜索又可以具体提取数据 多高级 而且不用数据库
更多追问追答
追问
请问Select()语句中"name like”所要表达的涵义是什么?像Contains的意思一样么?
追答
select()方法里面是SQL语法 就是where后面的条件
展开全部
List<ListViewItem> itemCollection;
// 将全局变量itemCollection作为查询数据源
itemCollection = new List<ListViewItem>();
foreach (var user in userList)
{
var itm = new ListViewItem();
itm.SubItems.Add(user.Name);
itm.SubItems.Add(user.Sex);
itm.SubItems.Add(user.Phone);
itm.SubItems.Add(user.Address);
itm.SubItems.Add(user.Remark);
itemCollection.Add(itm);
}
listView1.Items.AddRange(itemCollection.ToArray());
查询:
// 按钮事件中,根据文本框txtbox输入数据进行检索
var searchText = textBox.Text;
// 查询姓名项是否完全一致
var searchItm = itemCollection.SingleOrDefault(m => m.SubItems[0].ToString() == searchText);
if (searchItm != null)
{
// 一致就取值
txtboxName.Text = searchItm.SubItems[0].ToString();
txtboxSex.Text = searchItm.SubItems[1].ToString();
txtboxNum.Text = searchItm.SubItems[2].ToString();
txtboxAddress.Text = searchItm.SubItems[3].ToString();
txtboxRemark.Text = searchItm.SubItems[4].ToString();
}
// 然后相似查询,可能存在多个
var searchItms = itemCollection.Where(m => m.SubItems[0].ToString().Contains(searchText)).ToList();
if (searchItms != null)
{
// 依次删除再插入到第一
foreach (var itm in searchItms)
{
listView1.Items.Remove(itm);
listView1.Items.Insert(0, itm);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有点忘了。。
直接把listview里面的东西拿出来吧
string li =listview.Items(); //括号里面是index,就是第几个,第一个是0吧,不行就强转string
??好像是这个吧或者
foreach (items a in listview)
{
///,,,,,,,,,,,,,
}
具体的语法忘了。。
直接把listview里面的东西拿出来吧
string li =listview.Items(); //括号里面是index,就是第几个,第一个是0吧,不行就强转string
??好像是这个吧或者
foreach (items a in listview)
{
///,,,,,,,,,,,,,
}
具体的语法忘了。。
追答
你是想写进去是吧。我说的是拿出来
ListViewItem lvi = new ListViewItem();
创建一个lvi,然后lvi有一个position和一个text
最后listview.items.add(lvi);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2016-06-28
展开全部
很好,我也收藏一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方便给我你的项目代码,可以帮你调试
M978718484@163.com (项目要记得压缩*.zip)
M978718484@163.com (项目要记得压缩*.zip)
更多追问追答
追问
调试 我自己会 我要的是代码 你没看懂我问题 这个问题 我可以给出我能给的最高分 大概是400 但这里只能给出100 所以才只有100分
追答
看下是否是你想要的效果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询