使用DataTable的Select()方法遇到的问题解决方法
今天使用到DataTable的select()方法遇到了一个问题 看代码
var row = dt.Select("status='未下载'");
当使用查询后,得到的行集合的列名会消失,如果此时只拿行集合给dataview赋值,则表格会显示空白数据。
经过一番百度,解决了这个问题。
Select方法的返回的是包含查询到的数据的DataRow,但是这个DataRow只是被查询的DataTable的一个映射,所以DataRow是随着DataTable的行变化而变化的。
所以,要想把返回的DataRow放进数据显示控件中,需要将其放入另一个DataTable中。
另外,在一个新表中插入行,不能直接用DataTable.Rows.Add(DataRow)的方式,因为这样是插入一个新表,也就是DataRow是空的。要用导入行的方式,DataTable.ImportRow(DataRow)。当然,前提是这个新表要有与原数据表一样的结构。
看代码
var row = dt.Select("status='未下载'"); var temp = dt.Clone();//复制表结构 foreach (var item in row) { temp.ImportRow(item);//导入行数据 }
导入行数据之后,就可以拿导入行数据的新表给dataview赋值了
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步