C#按button查询listview中与textbox输入信息相匹配的内容

我要在查询button前textbox中输入查询字符后按查询button然后listview要显示与之相关的内容如我输入:路listview要把路人甲显示在最前面同时如果... 我要在查询button前textbox中输入查询字符后 按查询button 然后listview要显示与之相关的内容 如我输入:路 listview要把路人甲显示在最前面 同时如果我输入:路人甲 listview中路人甲这一项所有子项显示在相对应的textboxname、textboxsex、textboxnum、textboxaddress、textboxremark中 具体代码最好 access数据表中所有数据已成功显示在listview中了 急 不回答问题的别装B 你觉得你很厉害请直接用代码代替口水
谢谢各位前辈老师认真解答
展开
 我来答
周祥
2014-07-07 · 知道合伙人IT服务行家
周祥
知道合伙人IT服务行家
采纳数:233 获赞数:781
职业爱好者

向TA提问 私信TA
展开全部
 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后面的条件
百度网友d23968241
2014-07-09 · 超过14用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:33.7万
展开全部
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);
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ma教教主
2014-07-06 · 超过21用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:51.9万
展开全部
有点忘了。。
直接把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
展开全部
很好,我也收藏一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
玩转数据处理
2014-07-06 · 数据处理,Python,dotnet
玩转数据处理
采纳数:1613 获赞数:3794

向TA提问 私信TA
展开全部
方便给我你的项目代码,可以帮你调试
M978718484@163.com (项目要记得压缩*.zip)
更多追问追答
追问
调试 我自己会 我要的是代码 你没看懂我问题  这个问题 我可以给出我能给的最高分 大概是400 但这里只能给出100 所以才只有100分
追答

看下是否是你想要的效果

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式