1、創建DataTable對象
DataTable dt = new DataTable("Table_AX");
2、為DataTable創建列
//方式一(我覺得這種好) dt.Columns.Add("column0", System.Type.GetType("System.String")); //方式二 DataColumn dc = new DataColumn("column0", typeof(string)); DataColumn dc = new DataColumn("column1", System.Type.GetType("System.Boolean")); dt.Columns.Add(dc);
3、添加數據
DataRow dr = dt.NewRow(); dr["column0"] = "AX"; dr["column1"] = true; dt.Rows.Add(dr);
4、移除數據
dt.Columns.Remove("column0");
4、判斷是否有數據
//判斷是否有數據 if (dt.Rows.Count > 0) { //有 }
5、查詢
DataRow[] drs = dt.Select("column1 is null"); DataRow[] drss = dt.Select("column0 = 'AX'"); //返回第一條 DataRow dr = dt.Select("column1 is null").First(); //多條件用and連接 DataRow[] rows = dt.Select("column0 = 'AX' and column1 == true").First();
6、復制
//復制一個DataTable(有數據) DataTable dtNew = dt.Copy(); //復制一個空的DataTable(無數據) DataTable dtOnlyScheme = dt.Clone(); //將 DataRow 復制到 DataTable 中,保留任何屬性設置以及初始值和當前值 DataRow[] rows = dt.Select("column0 = 'AX' and column1 == true").First(); foreach (DataRow row in rows) { dtNew.ImportRow(row);//復制行數據 }
7、DataRow賦值
DataRow drOperate = dt.Rows[0]; //方式一 drOperate["column0"] = "AXzhz"; drOperate["column1"] = false; //方式二 drOperate[0] = "AXzhz"; drOperate[1] = false; //方式三 dt.Rows[0]["column0"] = "AXzhz"; dt.Rows[0]["column1"] = false; //方式四 dt.Rows[0][0] = "AXzhz"; dt.Rows[0][1] = false;
8、把DataRow數據存到DataTable中
dtOnlyScheme.Rows.Add(dt.Rows[0].ItemArray);
9、轉成字符串
System.IO.StringWriter sw = new System.IO.StringWriter(); System.Xml.XmlTextWriter xw = new System.Xml.XmlTextWriter(sw); dt.WriteXml(xw);//此處DataTable必須有名字 string s = sw.ToString();
10、篩選數據(詳見DefaultView文章)
dt.DefaultView.RowFilter = "column1 <> true"; dt.DefaultView.RowFilter = "column1 = true";
11、排序
dt.DefaultView.Sort = "column0 ,column1 ASC"; dt = dt.DefaultView.ToTable();
12、判斷一個字符串是否為DataTable的列名
bool flag = dt.Columns.Contains("AX");
13、取值
string str =dt.Rows[第幾行]["字段名"].ToString(); string str =dt.Rows[第幾行][第幾列].ToString(); //for循環 for (int i = 0; i < dt.Rows.Count; i++) { string str = dt.Rows[i]["字段名"].ToString(); string str = dt.Rows[i][第幾列].ToString(); } //foreach循環 foreach (DataRow dr in dt.Rows) { string str = dr["字段名"].ToString(); }

//創建DataTable對象 DataTable dt = new DataTable("Table_AX"); //為DataTable創建列 //方式一(我覺得這種好) dt.Columns.Add("column0", System.Type.GetType("System.String")); //方式二 DataColumn dc = new DataColumn("column1", System.Type.GetType("System.Boolean")); dt.Columns.Add(dc); //添加數據 DataRow dr = dt.NewRow(); dr["column0"] = "AX"; dr["column1"] = true; dt.Rows.Add(dr); //判斷是否有數據 if (dt.Rows.Count > 0) { //有 } //查詢 DataRow[] drs = dt.Select("column1 is null"); DataRow[] drss = dt.Select("column0 = 'AX'"); //復制一個DataTable(有數據) DataTable dtNew = dt.Copy(); //復制一個空的DataTable(無數據) DataTable dtOnlyScheme = dt.Clone(); //給DataRow賦值的三種方式 DataRow drOperate = dt.Rows[0]; //方式一 drOperate["column0"] = "AXzhz"; drOperate["column1"] = false; //方式二 drOperate[0] = "AXzhz"; drOperate[1] = false; //方式三 dt.Rows[0]["column0"] = "AXzhz"; dt.Rows[0]["column1"] = false; //方式四 dt.Rows[0][0] = "AXzhz"; dt.Rows[0][1] = false; //把DataRow數據存到DataTable中 dtOnlyScheme.Rows.Add(dt.Rows[0].ItemArray); //轉成字符串 System.IO.StringWriter sw = new System.IO.StringWriter(); System.Xml.XmlTextWriter xw = new System.Xml.XmlTextWriter(sw); dt.WriteXml(xw);//此處DataTable必須有名字 string s = sw.ToString(); //篩選數據(詳見DefaultView文章) dt.DefaultView.RowFilter = "column1 <> true"; dt.DefaultView.RowFilter = "column1 = true"; //排序 dt.DefaultView.Sort = "column0 ,column1 ASC"; dt = dt.DefaultView.ToTable(); //綁定的其實是DefaultView //gvTestDataTable.DataSource = dt; //gvTestDataTable.DataBind(); //判斷一個字符串是否為DataTable的列名 bool flag = dt.Columns.Contains("AX");