创建表

//创建一个空表
DataTable dt = new DataTable();
//创建一个名为"Table_New"的空表
DataTable dt = new DataTable("Table_New");

创建列

//创建空列
DataColumn dc = new DataColumn();
dt.Columns.Add(dc);
//创建带列名和类型名的列
dt.Columns.Add("column0", System.Type.GetType("System.String"));
dt.Columns.Add("column0", typeof(String));
//通过列架构添加列
DataColumn dc = new DataColumn("column1",System.Type.GetType("System.DateTime"));
DataColumn dc = new DataColumn("column1", typeof(DateTime));
dt.Columns.Add(dc);

创建行

//创建空行
dt.Rows.Add();
//通过行框架创建并赋值
dt.Rows.Add("张三",DateTime.Now);
//通过复制dt表的某一行来创建
dt.Rows.Add(dt.Rows[i].ItemArray);

赋值

//新建行的赋值
DataRow dr = dt.NewRow();
dr[0] = "张三";//索引
dr["date"] = DateTime.Now; //名称
//对表已有行进行赋值
dt.Rows[0][0] = "张三"; //索引
dt.Rows[0]["date"] = DateTime.Now;//名称
//取值
string name=dt.Rows[0][0].ToString();
string time=dt.Rows[0]["date"].ToString();

删除行

//使用Remove方法,直接删除行
dt.Rows.Remove(dt.Rows[0]);
//Remove方法删除多行,需要倒序循环,否则会出错
for (int i = dt.Rows.Count - 1; i >= 0; i--)
{
  dt.Rows.Remove(i);
}

//使用Delete方法
dt.Row[0].Delete();//只是将此行标记为deleted,使用RejectChanges可以回滚,取消标记
dt.AcceptChanges();//通过此方法提交对被标记的行的修改

复制和克隆

//复制表,同时复制了表结构和表中的数据
DataTable dtNew = new DataTable();
dtNew = dt.Copy();
//复制表
DataTable dtNew = dt.Copy();  //复制dt表数据结构
dtNew.Clear()  //清空数据

//克隆表,只是复制了表结构,不包括数据
DataTable dtNew = new DataTable();
dtNew = dt.Clone();
//如果只需要某个表中的某一行
DataTable dtNew = new DataTable();
dtNew = dt.Copy();
dtNew.Rows.Clear();//清空表数据
dtNew.ImportRow(dt.Rows[0]);//这是加入的是第一行
01-17 17:54