c# - 使用 textBox_TextChanged 在 dataGridView 中搜索
问题描述
我想在 dataGridView 中进行搜索。我拿出我的数据:
private void button1_Click(object sender, EventArgs e)
{
FileStream f1 = new FileStream("zapis.dat", FileMode.Open);
BinaryReader br = new BinaryReader(f1);
int а = 0;
while (f1.Position < f1.Length)
{
string data = br.ReadString();
string sing = br.ReadString();
string avtor = br.ReadString();
string zagl = br.ReadString();
string janr = br.ReadString();
string ezik = br.ReadString();
dataGridView1.Rows.Add(++а, sing, avtor, zagl, janr, ezik, data);
}
f1.Close();
}
对于我使用的搜索:
private void textBox1_TextChanged(object sender, EventArgs e)
{
(dataGridView1.DataSource as DataTable).DefaultView.RowFilter =
string.Format("Name LIKE '{0}%' OR Name LIKE '% {0}%'", textBox1.Text);
}
当我在 texhtBox 中写作时,这让我误会了:
System.NullReferenceException:“对象引用未设置为对象的实例。”
(... as System.Data.DataTable) 返回 null。
你能帮我吗?如何做到这一点?
解决方案
首先你需要将DataTable声明为一个对象,然后ue DefaultView。例如
DataTable dt = tDAL.Search(keyword);
dgvTalents.ItemsSource = dt.DefaultView;
tDAL 是我的仓库中的一种方法,它有一个查询。
推荐阅读
- airflow - Cloud SQL 代理:负载下偶尔出现连接超时
- sql-server - 无法从 Google Cloud Compute Engine 连接到 Cloud SQL 服务器
- javascript - 录制开始时是否有保持闪光灯开启的解决方法?(iOS + Expo/Expo-camera)
- spring-batch - 是否可以使用不同的 sql 对象(字符串)在步骤之间共享阅读器?
- ruby-on-rails - 活动作业:如何检查是否已经安排了相同的作业
- reactjs - 使用 PrivateRoute 渲染路由
- python - Python 在异常情况下继续执行
- java - Java getBytes 在测试中的返回值与在 injectMock 中不同
- powershell - 无法使用 powershell 设置打印机驱动程序 IP 地址
- javascript - 如何检查更改时的文本输入字符串是否具有大写字母Javascript