轉自:http://blog.163.com/zhouence518@126/blog/static/71435456200911113935895/
詳細講解了C#開發中資料類型DataTable的使用,包括建立DataTable,查詢DataTable,在DataTable裡添加記錄,添加列,修改列的屬性以及修改某行某列的值的方法。同時說明了將DataTable作為LoopUpEdit控制項的資料來源時的注意點。
string userid = "UserID = {0}"; //尋找初審人,流程階段為初審,權限類別型為受理 IList list_InitAudUser = ManagerFactory.GetS_UserAcce_FlowManager().SearchUsers(p_ywtype, 10100002, 10110001);//建立DataTable,包含兩列,並對它進行賦值 DataTable table_InitAudUser = new DataTable(); table_InitAudUser.Columns.Add("UserID", typeof(int)); table_InitAudUser.Columns.Add("RealName", typeof(string)); DataRow row_InitAudUser = null; for (int i = 0; i < list_InitAudUser.Count; i++) { row_InitAudUser = table_InitAudUser.NewRow(); S_UserAcce_Flow s_UserAcce_Flow = list_InitAudUser[i] as Model.S_UserAcce_Flow; row_InitAudUser["UserID"] = s_UserAcce_Flow.USERID; //對USERID進行翻譯 row_InitAudUser["RealName"] = ManagerFactory.GetS_USERManager().GetRealNameByID(s_UserAcce_Flow.USERID); table_InitAudUser.Rows.Add(row_InitAudUser); } //查詢,查不到則添加 DataRow[] scr_row = table_InitAudUser.Select(string.Format(userid, scr)); if (scr_row.Length == 0) { row_InitAudUser = table_InitAudUser.NewRow(); row_InitAudUser["UserID"] = scr; row_InitAudUser["RealName"] = ManagerFactory.GetS_USERManager().GetRealNameByID(scr); table_InitAudUser.Rows.Add(row_InitAudUser); }//將DataTable作為LookUpEdit控制項的資料來源,注意將控制項的列的屬性和DataTable裡列的屬性一一對應 this.lookUpEdit_IniAudPer.Properties.ValueMember = "UserID"; this.lookUpEdit_IniAudPer.Properties.DisplayMember = "RealName"; this.lookUpEdit_IniAudPer.Properties.DataSource = table_InitAudUser;附:1、修改DataTable裡列的屬性:先得到該列,再修改其屬性,如下:table_InitAudUser.Columns["UserID"].DataType=Type.GetType("System.bool"); 2、修改某行某列的值:for (int i = 0; i < table_InitAudUser.Rows.Count; i++) table_InitAudUser.Rows[i]["RealName"] = "澤澤";