datatable

datatable添加数据

datatable dt=new datatable();

dt.columns.add("string");     //添加列

dt.Columns["string"].SetOrdinal (0);  //设定"string"列的位置

DataTable.Columns.Contains(列名)判断某列是否存在

datarow dr=dt.newrow(); 

dr[0]="string";

dt.rows.add(dr);          //添加行

DT.DefaultView.Sort = DT.Columns[0].ColumnName + " DESC";   DT=DT.DefaultView.ToTable(); //换列[x]进行排序,DESC为逆序

dt.rows.insertAt(dtrow,i)//在i行添加dtrow(行数据)

1.使用DataTable.Rows.Remove(DataRow),或者DataTable.Rows.RemoveAt(index);可以直接删除行

2.datatable.Rows[i].Delete()。Delete()之后需要datatable.AccepteChanges()方法确认完全删除,因为Delete()只是将相应列的状态标志为删除,还可以通过datatable.RejectChanges()回滚,使该行取消删除。

总结: delete和remove Delete的使用是 datatable.Rows[i].Delete(); Remove的使用是datatable.Rows.Remove(datatable.Rows[i]); 这两个的区别是,使用delete后,只是该行被标记为deleted,但是还存在,用Rows.Count来获取行数时,还是删除之前的行数.需要使用datatable.AcceptChanges()方法来提交修改. 而Remove方法则是直接删除. 如果在for循环里删除行的话,最好是使用delete方法,不然会出现count变化的情况.循环完后再使用AcceptChanges()方法提交修改,删除掉标记为deleted的行

i=dt.Rows["行名"]["列名"].ToString();

dt.Rows[行数][列数].ToString();   //DT数据操作

dt.Rows[i][j]="值";

 dthzrow = dthz.NewRow();
                dthzrow["车牌号"] = sqldt.Rows[0]["FNumber"].ToString();
                dthzrow["线路"] = sqldt.Rows[0]["FRoute"].ToString();
                dthzrow["车属单位"] = sqldt.Rows[0]["FDeptName"].ToString();
                dthzrow["超限次数"] = dt1.Rows[i][1].ToString();
                dthzrow["超速次数"] = 0;
                dthz.Rows.Add(dthzrow);

bool b = t.Columns.Contains("bbb"); //判断列是否存在

dt.Columns[i].ColumnName //获取列名

原文地址:https://www.cnblogs.com/clarklxr/p/5901820.html