使用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賦值了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章