Datatable用法


           //Datatable 的用法
           /*
            * 1、基本的DataTable列行增加
            * 2、排序、篩選等用法
            * 3、xml之間的轉化
            * 4、Json之間的轉換
            * 5、list之間的轉換
            * 6、實體類之間的轉換
            */

今天把常用的Datatable整理了一下,雖然平時經常用這個,但是沒有總結過,這次剛好有點時間做個筆記;

先看第一個:

 DataTable dt = new DataTable();
            dt.Columns.Add("ID",typeof(int));
            dt.Columns.Add("Name",typeof(string));
            dt.Columns.Add("Sex",typeof(string));
            DataRow dr = dt.NewRow();
            dr["ID"] = "1";
            dr["Name"] = "張三";
            dr["Sex"] = "";
            dt.Rows.Add(dr);
             dr = dt.NewRow();
            dr["ID"] = "2";
            dr["Name"] = "李四";
            dr["Sex"] = "";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr["ID"] = "12";
            dr["Name"] = "旺旺";
            dr["Sex"] = "";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr["ID"] = "22";
            dr["Name"] = "王五";
            dr["Sex"] = "";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr["ID"] = "32";
            dr["Name"] = "趙六";
            dr["Sex"] = "";
            dt.Rows.Add(dr);

第二個:按照其中已知的某一列排序(根據實際列的類型需要修改代碼)

 static  public DataTable DtSortA(DataTable Dt, string column)
        {
            DataTable dtNew = Dt.Clone();
            dtNew.Columns[column].DataType = typeof(DateTime);
            foreach (DataRow s in Dt.Rows)
            {
                dtNew.ImportRow(s);//導入舊數據
            }
            dtNew.DefaultView.Sort = column + " desc";
            dtNew = dtNew.DefaultView.ToTable();
            return dtNew;
        }
      static public DataTable DtSortB(DataTable Dt, string column)
        {
            DataTable dtNew = Dt.Clone();
            foreach (DataRow item in Dt.AsEnumerable().OrderByDescending(a => Convert.ToDateTime(a[column])))
            {
                dtNew.ImportRow(item);
            }
            return dtNew;
        }
            DataTable dt_order_soon = dt_invest.Clone();//克隆表

            if (dt_invest != null && dt_invest.Rows.Count > 0)
            {
                DataRow[] dt_soon = dt_invest.Select("1=1");//篩選條件 for (int e = 0; e < dt_soon.Length; e++)
                {
                    var day = new JBLProCompute.InComeCount().ReturnDays(DateTime.Now, Convert.ToDateTime(dt_soon[e]["DateOver"].ToString()));
                    if (day >= 0 && day <= 7)
                    {
                        dt_order_soon.ImportRow(dt_soon[e]);
                    }
                }
}
            DataTable dt = new DataTable();
            dt.Columns.Add("ID", typeof(int));//Type.GetType("System.String")
            dt.Columns.Add("Name",typeof(string));
            dt.Columns.Add("Sex",typeof(string));
            DataRow dr = dt.NewRow();
            dr["ID"] = "1";
            dr["Name"] = "張三";
            dr["Sex"] = "";
            dt.Rows.Add(dr);
            DataTable ddt = new DataTable();
            //輸出指定的列數據
           ddt= dt.DefaultView.ToTable(false,new string[] {"ID","Name"});

 

第三:

DataTable dt = new DataTable();
            dt.Columns.Add("ID", typeof(int));//Type.GetType("System.String")
            dt.Columns.Add("Name",typeof(string));
            dt.Columns.Add("Sex",typeof(string));
            DataRow dr = dt.NewRow();
            dr["ID"] = "1";
            dr["Name"] = "張三";
            dr["Sex"] = "";
            dt.Rows.Add(dr);////想要輸出xml格式,當前的Datatable表必須要有表名
           dt.TableName = "myData";//添加Datatable表名才能輸出xml格式
           System.IO.StringWriter dsw = new System.IO.StringWriter();
           System.Xml.XmlTextWriter xw = new System.Xml.XmlTextWriter(dsw);
           dt.WriteXml(xw);
           string s = dsw.ToString();
            //將xml格式轉成Datatable格式,直接是xml格式的字符串最外層是根節點,第二層是表名,三層是字段和數據
           string strxml = @"<xml><Login><ID>1</ID><Name>小明</Name></Login><Login><ID>2</ID><Name>小萬</Name></Login></xml>";
          //第二種是文件讀入xml
          XmlDocument docddd=new XmlDocument();
docddd.Load(Server.MapPath(
"/datatable.xml"));
DataTable dt_xml
= ConvertXMLToDataSet(docddd.InnerXml).Tables[0];

 


免責聲明!

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



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