01/10/2018, 11:44
Gặp vấn đề khi dùng lệnh If trong C#
Chào cả nhà, em đang gặp lỗi với lệnh IF mà không biết xử lý sao ạ
private DataTable CreateUserGridRow(List<UserGroupPermissionInfo> usersInfo) { List<UserGroupPermissionInfo> permissionInfo = new List<UserGroupPermissionInfo>(); List<UserPermissionInfo> UserPermissionInfo = new List<UserPermissionInfo>(); List<UsersInfo> UsersInfo = new List<UsersInfo>(); List<MenuItemsInfo> menuItem = new List<MenuItemsInfo>(); permissionInfo = comService.GetUserGroupPermissionInfo(Convert.ToInt32(cbUserGroup.SelectedItem.Value)); if (usersInfo != null) { for (int a = 0; a < permissionInfo.Count; a++) { if (permissionInfo[a].user_id == "admin") { gvRow = gvTable.NewRow(); gvRow["module_name"] = permissionInfo[a].module_name; string modulename = gvRow["module_name"].ToString();
if (UserPermissionInfo[a].module_name.ToString() == modulename) { if (UserPermissionInfo[a].user_id.ToString() == txt_Userid.ToString()) { gvRow["username_access"] = UserPermissionInfo[a].username_access; } else { gvRow["username_access"] = null; } } else { gvRow["username_access"] = null; } gvTable.Rows.Add(gvRow); } }
} return gvTable; }
nó báo ở phần if (UserPermissionInfo[a].module_name.ToString() == modulename):
An exception of type ‘System.ArgumentOutOfRangeException’ occurred in mscorlib.dll but was not handled in user code
Additional information: Index was out of range. Must be non-negative and less than the size of the collection.
Mọi người chỉ dùm em với ạ
Em xin cảm ơn
Bài liên quan
PermissionInfo với UserPermissionInfo thì liên quan gì nhau mà trên thì for với permissionInfo còn dưới thì truy cập UserPermissionInfo ???
Do giá trị a không nằm trong list nên gây ra lỗi, debug sẽ thấy nhé
comService.GetUserGroupPermissionInfo(Convert.ToInt32(cbUserGroup.SelectedItem.Value)) = null cho nên mới Out of range