做一个MFC控件应用 怎么让工号为唯一值?

qq_40593968 2018-01-30 02:36:36
如题 求教
...全文
819 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
丁劲犇 2020-01-23
  • 打赏
  • 举报
回复

sqlite ,或者直接用uuid的库,或者用时刻哈希出来个什么东西
我喝多了 2020-01-20
  • 打赏
  • 举报
回复
你的工号是怎么生成的, 生成的时候检查唯一性.
待续_1006 2020-01-16
  • 打赏
  • 举报
回复
引用 8 楼 xiaohuh421 的回复:
最简单的做法就是遍历查询一次, 有就重复了.
偷懒的办法就是使用set或者map来保存已经存在的工号, 可快速判断是否存在.

+1
sichuanwww 2020-01-03
  • 打赏
  • 举报
回复
set<WorkNO> worerNo
smwhotjay 2020-01-01
  • 打赏
  • 举报
回复
用sqlite做数据库,工号 查询 即可。
gz_qmc 2019-12-31
  • 打赏
  • 举报
回复
数据是路人甲 窗口是路人乙 楼主是路人丙 甲口袋你的钱是多少不是乙说了算的 乙只是用手指头表示出来方便丙知道而已
待续_1006 2018-02-08
  • 打赏
  • 举报
回复
这编译器属实V587
pxw_ps 2018-02-08
  • 打赏
  • 举报
回复
楼上几位的方法都不错啊,数据量小点笨点的话就直接弄个数组咯,每添加一个就跟数组里的对比一下,没有就添加进去,如果已经存在的就不添加,提示工号重复
Lafite_MoMo 2018-02-07
  • 打赏
  • 举报
回复
楼主,你怎么还在用VC6.0?该换了
qq_26868981 2018-02-01
  • 打赏
  • 举报
回复
你可以写一个类,属性包括工号,姓名,性别,部门,技能。然后用一个CArray数组以这个类作为输入输出,添加的响应函数里先把你的设置的东西全都读出来。判断数组是不是空,空直接添加,不空就循环数组和你刚设置的工号比较一下,不相等就add。
lonelyhacker 2018-02-01
  • 打赏
  • 举报
回复
1.CStringArray m_array; 假设当前工号内容存储在 strEdit1; // 点击添加的时候 OnAdd() { int i = 0; int nSize = m_array.GetSize(); for(i = 0; i < nSize; i++) { if(strEdit1== m_array.GetAt(i) AfxMessageBox(_T("已存在")); } } 2: int nCount= m_listCtrl.GetItemCount(); for(i = 1; i <= nCount; i++) { //获取每个列表控件中的工号,做比较。 //str = m_listCtrl.GetItemText(i, 1); if(strEdit1== str ) AfxMessageBox(_T("已存在")); }
qq_40593968 2018-01-31
  • 打赏
  • 举报
回复
引用 7 楼 schlafenhamster 的回复:
需要一个 数组 记录 程序 至今 输入 的 所有 “工号”。 当有 新工号输入 时 ,这个 工号 与 以前所有的 工号 (即那个数组)比较。相等的 不要,不相等存入这个数组。
引用 8 楼 xiaohuh421 的回复:
最简单的做法就是遍历查询一次, 有就重复了. 偷懒的办法就是使用set或者map来保存已经存在的工号, 可快速判断是否存在.
现在我这情况是一开始根本没有任何员工 不知道怎么用set或者map对工号进行封装 一开始就不存在任何工号 我不知道该用什么方法 迷惘的一塌糊涂
xiaohuh421 2018-01-31
  • 打赏
  • 举报
回复
最简单的做法就是遍历查询一次, 有就重复了. 偷懒的办法就是使用set或者map来保存已经存在的工号, 可快速判断是否存在.
schlafenhamster 2018-01-31
  • 打赏
  • 举报
回复
需要一个 数组 记录 程序 至今 输入 的 所有 “工号”。 当有 新工号输入 时 ,这个 工号 与 以前所有的 工号 (即那个数组)比较。相等的 不要,不相等存入这个数组。
schlafenhamster 2018-01-31
  • 打赏
  • 举报
回复
简单点 工号: 使用 CStringArray 。看看 CStringArray 的使用。 一开始 CStringArray 为 空, 以后 每个 合法的 工号 (唯一的)通过 add 加入
许文君 2018-01-31
  • 打赏
  • 举报
回复
需不需要连续性?GUID如何?或者通过年月日时分秒生成,只要你不改时间,就不会重复。 如果是连续数列不用数据库的话,那只有老老实实写文本记录了,额外记录一个上次最后一个号码,然后+1就行。
骑猴子的六子 2018-01-31
  • 打赏
  • 举报
回复
引用 楼主 qq_40593968 的回复:
如题 求教
map不明白那就用详细点的链表 用户加标识(userid)就用链表的顺序来对应用户信息(userinfo) 工号也直接引用链表的顺序标识
xiaohuh421 2018-01-31
  • 打赏
  • 举报
回复
一开始没有, 就没有撒, set或者map就是空的, 当然也就不会有重复. 加一个工号就先判断set或者map中有没有这个工号, 没有就加入set/map 你实在搞不懂set或者map, 你就用一个链表来保存工号, 每次添加新的工号就先判断链表中是否存在这个工号(链表为空当然工号也不存在). 这都还不懂的话, 只能说你不适合写程序了. 最基本的逻辑了
qq_40593968 2018-01-30
  • 打赏
  • 举报
回复
引用 5 楼 qq_33462307 的回复:
思路就是将现在要添加的工号和已经存在的工号进行对比,如果存在怎么做,如果不存在怎么做。
if( IsDlgButtonChecked(szEdit1) ) GetDlgItem(szEdit1)=GetWindowText(szEdit1); { AfxMessageBox("工号重复 不可创建"); return; } 我只会这样……而且if里面还是错的 我也不知道该怎么写
倚栏|听风 2018-01-30
  • 打赏
  • 举报
回复
思路就是将现在要添加的工号和已经存在的工号进行对比,如果存在怎么做,如果不存在怎么做。
加载更多回复(4)

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧