C# DataTbale詳細操作


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");
整合代碼

 


免責聲明!

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



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