C# 对NEW Datatable过滤排序,为何会影响到DataGridView的显示,BUG吗?

C# 对NEW Datatable过滤排序,为何会影响到DataGridView的显示,BUG吗?
见代码
paras = new SqlParameter[]{
new SqlParameter("@type", "待复核明细"),
new SqlParameter("@fhdjbh", PubVar.djbh)
};
dt = PubVar.sql.RunProcedureDR("LJH_FHT_mxfh", paras);
DataGridView1.DataSource = dt;
DataTable dtNew = dt;
string cxStr = string.Format("sptm LIKE '{0}%' or spbh like '%{0}%' or zjm like '%{0}%'", "a");
//排序,过滤
dtNew.DefaultView.RowFilter = cxStr;
dtNew.DefaultView.Sort = "pihao,shl";
如上代码:有个DataGridView,已经设置数据源了,我重新NEW了一个DataTable dtNew后,对dtNew排序或者过滤 界面的DataGridView1都会跟着变,求高人指导

DataTable dtNew=dt.Clone();

DataTable dtNew = dt;并没有创建一个新的对象,其中dtNew和dt指向同一个datatable。

你倒是可以创建一个新的DataView(绑定的时候绑定到DataView):
DataView newView = new DataView(dt);
newView.RowFilter = cxStr;
...

你操作的是不是那个datagridview的数据源来的?

因为你是直接绑定的。你可以每次查询创建一个新的dt

DataTable dtNew = dt;
这里你变量名有new有什么用?你要用new运算符创建一个新的。

完美解决 谢谢上面 回答的朋友
采纳 熙风 的建议 不过是过滤之前 是 下面这样就可以了
dtNew = dtNew.Copy();

最后传递是 传递dtNew.DefaultView.ToTable()