我接手了一些我不太熟悉的代码。我们使用访问数据源来填充DGV。
我刚刚更改它以填充MySQL的DGV。
这是我用来绑定的代码片段:
public void Bind(DataGridView dataGridView)
{
string query = "SELECT * from vwFavoritesList";
mySqlDataAdapter = new MySqlDataAdapter(query, mySqlConnection);
mySqlCommandBuilder = new MySqlCommandBuilder(mySqlDataAdapter);
dataTable = new DataTable();
mySqlDataAdapter.Fill(dataTable);
bindingSource = new BindingSource();
bindingSource.DataSource = dataTable;
dataGridView.DataSource = bindingSource;
}
我在移植之前的数据视图命令时遇到了问题。
以下是我们之前使用过的搜索代码非常棒。
private void txtSearch_TextChanged(object sender, EventArgs e)
{
DataView dv = new DataView(this.dsFavoritesList.gryFavoritesList);
dv.Sort = "Name ASC";
dv.RowFilter = string.Format("Name LIKE '%{0}%'",txtSearch.Text);
dataGridView1.DataSource = dv;
}
我想出了:
(dataGridView1.DataSource as DataTable).DefaultView.RowFilter = string.Format("Name LIKE '%{0}%'",txtSearch.Text);
但是当这个运行时我得到这个错误: 对象引用未设置为对象的实例。
答案 0 :(得分:1)
您的DataGridView已绑定到DataTable,因此您应该能够执行此操作: -
dataGridView1.DefaultView.RowFilter = string.Format("Name LIKE '%{0}%'",txtSearch.Text);
答案 1 :(得分:0)
你做对了......你必须创建一个新的DataView并使用你的DataTable dt。
只有一个错误,你必须调用你的dv.RowFilter并将值设置为''喜欢:
private void txtSearch_TextChanged(object sender, EventArgs e)
{
DataView dv = new DataView(dt);
dv.RowFilter = "Name LIKE '" + txtSearch.Text.Trim() + "'";
dataGridView1.DataSource = dv;
}
我希望这能解决你的问题!祝你今天愉快!