雜記a---DataTable.DefaultView.ToTable,.Sort,.RowFilter;DataTable.Copy()


 string sql = "";

            sql = string.Format(
                "select {0} from pkg_info {1} {2}",
                columns,
                Convert.GetSearchSql(searchParams, ref parameters),
                Convert.GetOrderBySql(orderParams));

等同於

string sql;
            sql = "select " + columns + " from user_collect_product a LEFT JOIN pkg_info b ON b.ProdID=a.ProdID " +
                Convert.GetSearchSql(searchParams, ref parameters) +
                Convert.GetOrderBySql(orderParams);

 DataTable.DefaultView 屬性

DefaultView 屬性返回可用於排序、篩選和搜索 DataTable 的 DataView。

if (!IsPostBack)
        {
            DataTable dt = Xml.XmlToDataTable("Xml/menu.xml");//讀取xml到datatable中
            DataTable dtType = dt.Copy().DefaultView.ToTable(true, "type");//選擇DataTable等數據源中的唯一值
//dtType是只返回dt的"type"那一列而已,就是說第二個table得到的是一個新的DataTable,這個DateTable只包含dt的“type”這一列的數據。 dlType.DataSource = dtType; dlType.DataBind(); foreach (DataListItem di in this.dlType.Items)//datalistitem 引用變量 不可操作!this.dltype.item 數據表的項可操作 { Label lblType = di.FindControl("lblType") as Label;// 找到lblType並委婉轉換為Label控件 DataList dlDetail = di.FindControl("dlDetail") as DataList;// 找到dlDetail並委婉轉換為DataList控件 DataView dv = dt.Copy().DefaultView;// 拷貝dt,並返回副本的DefaultView

// 篩選dv里的數據,只取type這一字段等於lblType這個Label控件的文本內容(去掉前面空格),說白了就是篩選type等於lblType.Text.Trim() 的那一些數據
dv.RowFilter = "type='" + lblType.Text.Trim() + "'"; dv.Sort = "name asc"
; dlDetail.DataSource = dv; dlDetail.DataBind(); }

DefaultView.ToTable(false, new string[] { "你要的列名", "你要的列名" });//多列只要這兩列

DefaultView.ToTable(true, new string[] { "你要的列名", "你要的列名" });// DISTINCT 返回所有具有不同值的列。

DefaultView.Sort="字段名1 ASC,字段名2 DESC";//相當於 order by

DataTable.DefaultView.RowFilter里面只能寫過濾條件,排序條件寫到Sort屬性中。

 

MenuDt.DefaultView.Sort = "M_BigOrder asc"; //相當於Order By
MenuDt.DefaultView.RowFilter = "M_Fid='0'";  //相當於Where

 

DataTable.Copy 方法

返回值

類型:System.Data.DataTable
新的 DataTable,它具有與該 DataTable 相同的結構(表架構和約束)和數據。
如果這些類已經過派生,則副本也具有相同的派生類。
Copy 將創建一個新 DataTable,后者與原始 DataTable 具有相同的結構和數據若要將結構復制到新的 DataTable,而不是復制到數據,請使用 Clone

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM