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 //获取列名