zoukankan      html  css  js  c++  java
  • C# DataTable操作

        protected void Page_Load(object sender, EventArgs e)
        
    {
            
    //①Create a DataTable
            DataTable dt = new DataTable("Table_AX");

            
    //②Add columns for DataTable
            
    //Method 1
            dt.Columns.Add("column0", System.Type.GetType("System.String"));
            
    //Method 2
            DataColumn dc = new DataColumn("column1", System.Type.GetType("System.Boolean"));
            dt.Columns.Add(dc);

            
    //③Add rows for DataTable
            
    //★Initialize the row
            DataRow dr = dt.NewRow();
            dr[
    "column0"= "AX";
            dr[
    "column1"= true;
            dt.Rows.Add(dr);
            
    //★Doesn't initialize the row
            DataRow dr1 = dt.NewRow();
            dt.Rows.Add(dr1);

            
    //④Select row
            
    //Search the second row 如果没有赋值,则用is null来select
            DataRow[] drs = dt.Select("column1 is null");
            DataRow[] drss 
    = dt.Select("column0 = 'AX'");


            
    //⑤Copy DataTable include data
            DataTable dtNew = dt.Copy();

            
    //⑥Copy DataTable only scheme
            DataTable dtOnlyScheme = dt.Clone();

            
    //⑦Operate one row
            
    //★都是对dt的操作
            
    //Method 1
            DataRow drOperate = dt.Rows[0];
            drOperate[
    "column0"= "AXzhz";
            drOperate[
    "column1"= false;
            
    //Method 2
            drOperate[0= "AXzhz";
            drOperate[
    1= false;
            
    //Method 3
            dt.Rows[0]["column0"= "AXzhz";
            dt.Rows[
    0]["column1"= false;
            
    //Method 4
            dt.Rows[0][0= "AXzhz";
            dt.Rows[
    0][1= false;

            
    //⑧Evaluate another DataTable's row to current Datatable
            dtOnlyScheme.Rows.Add(dt.Rows[0].ItemArray);

            
    //⑨Use Rowstate
            
    //■■■■■■■■■■■■■■■■■■■■■■■■■■■■
            
    //不知道怎么才能使Row的State变为DataRowState.Deleted
            
    //More further,怎样设置Row的State
            
    //■■■■■■■■■■■■■■■■■■■■■■■■■■■■
            if (dt.Rows[0].RowState == DataRowState.Unchanged)
            
    {
                
    //Your logic
            }


            
    //⑩Convert to string
            System.IO.StringWriter sw = new System.IO.StringWriter();
            System.Xml.XmlTextWriter xw 
    = new System.Xml.XmlTextWriter(sw);
            dt.WriteXml(xw);
            
    string s = sw.ToString();

            
    //ⅰ.string convert to DataTable【Doesn't achieve it】
            
    //■■■■■■■■■■■■■■■■■■■■■■■■■■■■
            
    //没有把string成功转换为DataTable        ■■已实现,参见追加■■
            
    //■■■■■■■■■■■■■■■■■■■■■■■■■■■■
            
    //DataTable dtConvert = new DataTable();
            
    //System.IO.StringReader stream = new System.IO.StringReader(s);
            
    //System.Xml.XmlReader xtr = new System.Xml.XmlTextReader(stream);
            
    //dtConvert.ReadXml(xtr);

            
    //ⅱ.Filter DataTable
            
    //It's so strange that the second row has been filtered
            
    //the second row show in GridView never
            
    //It means null field will be filter always.
            
    //Filter the all conditions
            dt.DefaultView.RowFilter = "column1 <> true";
            
    //dt.DefaultView.RowFilter = "column1 = true";

            dt.DefaultView.RowStateFilter 
    = DataViewRowState.Added;

            
    //ⅲ.Sort row
            
    //Stupid method
            DataRow[] drsss = dt.Select(String.Empty, "column0 DESC , column1 ASC");
            
    //Clever method
            dt.DefaultView.Sort = "column0 , column1 ASC";

            
    //ⅳ.Bind DataTable
            
    //绑定的其实是DefaultView
            gvTestDataTable.DataSource = dt;
            gvTestDataTable.DataBind();
        }
  • 相关阅读:
    HDU 5938 Four Operations 【贪心】(2016年中国大学生程序设计竞赛(杭州))
    HDU 5935 Car 【模拟】 (2016年中国大学生程序设计竞赛(杭州))
    HDU 5934 Bomb 【图论缩点】(2016年中国大学生程序设计竞赛(杭州))
    HDU 5933 ArcSoft's Office Rearrangement 【模拟】(2016年中国大学生程序设计竞赛(杭州))
    HDU 5929 Basic Data Structure 【模拟】 (2016CCPC东北地区大学生程序设计竞赛)
    【转】LaTeX 符号命令大全
    HDU 5922 Minimum’s Revenge 【模拟】 (2016CCPC东北地区大学生程序设计竞赛)
    HDU 5927 Auxiliary Set 【DFS+树】(2016CCPC东北地区大学生程序设计竞赛)
    数据结构之稀疏矩阵
    C++中引用(&)的用法和应用实例
  • 原文地址:https://www.cnblogs.com/henyihanwobushi/p/2953105.html
Copyright © 2011-2022 走看看