فکر نمیکنم ایشون توی فیلتر کردن مشکلی داشته باشند فقط نمیدونند سطر اول رو خالی بذارند و ازش در جستجو کمک بگیرند.
من یک نمونه کد میذارم
        static string filter;
static string name;
static string lastname;
DataView dv;

private void button17_Click(object sender, EventArgs e)
{
dt.Clear();
//add first row
dt.Rows.Add();
da = new SqlDataAdapter("select * from tbl", connection);
//fill dt from row 2
da.Fill(dt);
//fill first row
dt.Rows[0]["id"] = 0;
dt.Rows[0]["name"] = "Type name here for search";
dt.Rows[0]["lastname"] = "Type lastname here for search";
dv = new DataView(dt);
dataGridView1.DataSource = dv;

da.Dispose();
}

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex == 0)
{
name = Convert.ToString(dataGridView1.Rows[0].Cells["name"].Value);
lastname = Convert.ToString(dataGridView1.Rows[0].Cells["lastname"].Value);

if (!string.IsNullOrEmpty(name) && name != "Type name here for search")
filter += "name LIKE '" + name + "%' and ";
if (!string.IsNullOrEmpty(lastname) && lastname != "Type lastname here for search")
filter += "lastname LIKE '" + lastname + "%' AND ";
filter += "1=1 OR id=" + 0;
dv.RowFilter = filter;

filter = name = lastname = "";
filter = name = lastname = null;
}
}