构建一个datatable:
DataTable dt = new DataTable(); dt.Columns.Add("customid"); for (int i = 0; i < 10; i++) { DataRow dr = dt.NewRow(); dr["customid"] = i.ToString(); dt.Rows.Add(dr); }添加新列Add方法就可以了,假如要插到某一列后面呢,可以用SetOrdinal(int ordinal)方法:
/// <summary> /// 从目标字符串中查找 /// </summary> /// <param name="findstr">要查找的字符串</param> /// <returns></returns> private List<string> GetObjItemsFromList(string findstr) { string[] arry = { "01 张三 男", "02 李四 男", "03 王五 女" }; return arry.ToList<string>().FindAll(delegate(string str) { return str.Contains(findstr); }); }
DataTable dt_excel = ds.Tables[0]; dt_excel.Columns.Add("new_sex").SetOrdinal(3);//添加新列new_sex并插入到第四列(序号)的位置 for (int i = 0; i < dt_excel.Rows.Count; i++) dt_excel.Rows[i]["new_sex"] = dt_excel.Rows[i]["e_sex"].ToString() == "0" ? "男" : "女"; dt_excel.Columns.Remove("e_sex");//移除掉
方法一:
using (ds = ....) { if (ds != null && ds.Tables[0].Rows.Count > 0) { System.Text.StringBuilder temp_dept_id = new System.Text.StringBuilder(); ds.Tables[0].DefaultView.ToTable(true, "HR_DEPT_ID").AsEnumerable().ToList().ForEach(x => { temp_dept_id.Append(FormateAddString(x["HR_DEPT_ID"].ToString())); }); if (string.IsNullOrEmpty(temp_dept_id.ToString())) return; strWhere += " AND HR_DEPT_ID in(" + temp_dept_id.ToString().TrimEnd(',') + ")"; } }
/// <summary> /// 格式化字符串 /// </summary> private string FormateAddString(string paramstr) { return !string.IsNullOrEmpty(paramstr) ? (paramstr + ",") : ""; }
方法二:
通过实现IEqualityComparer接口成员方法
/// <summary> /// 去掉DataTable重复项 /// </summary> /// <remarks>实现IEqualityComparer接口成员方法</remarks> public class DataTableRowCompare : IEqualityComparer<DataRow> { public DataTableRowCompare() { } public DataTableRowCompare(string filedname) { _fieldname = filedname; } private string _fieldname = "id"; public string fieldName { get { return _fieldname; } set { _fieldname = value; } } public bool Equals(DataRow x, DataRow y) { return (x.Field<string>(fieldName) == y.Field<string>(fieldName)); } public int GetHashCode(DataRow obj) { return obj.ToString().GetHashCode(); } }
using (DataSet postDS = .....) { DataTable _resultDt = postDS.Tables[0].AsEnumerable().Distinct(new DataTableRowCompare("POST_NAME")).CopyToDataTable(); CCBindDropDownList(this.ddlPostionName, _resultDt, "POST_NAME", "HR_DEPT_PATH", new ListItem()); }