将Dataview与MySQL填充的DataGridView一起使用

时间:2013-05-02 07:58:54

标签: c# visual-studio-2010 datagridview dataview

我接手了一些我不太熟悉的代码。我们使用访问数据源来填充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);

但是当这个运行时我得到这个错误: 对象引用未设置为对象的实例。

2 个答案:

答案 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;    
        }

我希望这能解决你的问题!祝你今天愉快!