如何使用文本框在数据网格视图中搜索数据?这是我当前的代码:privatevoidsearchTextBox_TextChanged(objectsender,EventArgse){(dataGridView1.DataSourceasDataTable).DefaultView.RowFilter=string.Format("Name='{0}'",searchTextBox.Text);但是,每当我在文本框中键入内容时,我的数据网格表都会过滤所有内容并变为空白。你知道为什么吗?先感谢您!您看到空白DataGridView的可能原因是您的过滤器字符串搜索与TextBox文本完全匹配的内容。"Name='{0}'"因为您在TextBox.TextChanged事件中更新了此过滤器,所以在您第一次输入字符时-找不到匹配项。例如,给定以下网格:═══════╝═══════╝║foo║║║2bar║║║║║║║║║║║║║║══║══║║║╔════════╗╔════════╗ddid║天然Chtextbox║ba║║╔════╦══════╗╔════╦══════╗╔════╦╔════╦══════╗══════╗╚════╩══════╝╚════╩══════╝╚════════╝══╝══╝║iDmnaturalchtextbox║bar║║╠════╬══════╣╠════╬══════╣╚════════╝║║bar║║║╚════╩╚════╚════╩══════╝如果是这种情况,我在下面提供了一些选项。如果不是这种情况,那么你有一个谜。精确匹配:考虑使用以下事件处理程序仅在输入完整的搜索文本后应用过滤器:DataTable).DefaultView.RowFilter=string.Empty;}else{(dataGridView1.DataSourceasDataTable).DefaultView.RowFilter=string.Format("Name='{0}'",searchTextBox.Text);}}StartsWith匹配:为了更平滑地过滤文本更改:privatevoidsearchTextBox_TextChanged(objectsender,EventArgse){(dataGridView1.DataSourceasDataTable).DefaultView.RowFilter=string.Format("NameLIKE'{0}%'",搜索文本框.文本);}包含匹配项:再次,流体过滤:privatevoidsearchTextBox_TextChanged(objectsender,EventArgse){(dataGridView1.DataSourceasDataTable).DefaultView.RowFilter=string.Format("NameLIKE'%{0}%'",searchTextBox.文本);只需针对填充网格的数据库创建一个新查询?使用带有LIKEEDIT的文本框文本:如果您希望网格随搜索更新,请使用AJAX。OhBeWise的答案是最好的,但我不喜欢它,直到我添加一些东西来获得积分。所以我将添加这个,请记住在OhBeWise的回答中,您过滤了要列出的行,但在查询中使用了列名。用于设置数据网格视图的数据源的查询。对于我示例中的实例,“LoginID”在选择语句中。以上就是C#学习教程:如何使用文本框在数据网格视图中搜索数据?如果分享的内容对你有用,需要进一步了解C#学习教程,希望你多多关注——(dataGridViewTheToGrid.DataSourceasDataTable).DefaultView.RowFilter=string.Format("LoginIDLIKE'{0}%'",textBoxFindUserID.Text);本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
