日期:2014-05-17  浏览次数:20752 次

datagridview控件如何实现显示加密
例如:我在datagridview里面显示了电话号码,是敏感数据,我不想让用户看全。
让它显示为
123****5678
这个怎么实现?

------解决方案--------------------
告诉你一个很简单的方法:记得分都给我,
SUBSTRING(C_LoginName,1,2)+'******'+SUBSTRING(C_LoginName,LEN(C_LoginName)-1,LEN(C_LoginName)-1) as C_LoginName

写sql语句的时候,讲这个123****5678所在的字段修改成:我上面给你的,上面给的只是相当于一个字段。也就是LoginName字段,将它修改成你要的字段就可以了。
------解决方案--------------------
就把SUBSTRING(C_LoginName,1,2)+'******'+SUBSTRING(C_LoginName,LEN(C_LoginName)-1,LEN(C_LoginName)-1) as C_LoginName

这个当作一个字段,放到你的sql语句里面,应该不能吧!
------解决方案--------------------
只是将C_LoginName变成你自己数据库的字段而已,我不知道你123****5678这个所属那个字段,也只能你自己修改了。然后在程序里,你什么都不用做,只管绑定数据源,就可以了。
------解决方案--------------------
要是我,我会把数据从数据库里取出来,然后分割字符串,取前几位后几位,然后中间就用****拼接。。。不知道这样行不行
------解决方案--------------------
引用:
要是我,我会把数据从数据库里取出来,然后分割字符串,取前几位后几位,然后中间就用****拼接。。。不知道这样行不行
  我也同意这么做
------解决方案--------------------
这个还用加密嘛?

再显示dgv的时候做特殊处理就是了,不管你是用sql还是代码来处理,,都是可以实现的额
------解决方案--------------------
重绘一下多简单
------解决方案--------------------
在model里面处理了,新增一个加密字段,截取成你要的箱子就好了。比如说把指定位置改成****
------解决方案--------------------
引用:
Quote: 引用:

这个还用加密嘛?

再显示dgv的时候做特殊处理就是了,不管你是用sql还是代码来处理,,都是可以实现的额


具体怎么在dgv显示的时候做特殊处理呢?


string s = "13721214765";
            s = s.Substring(0, 3) + "****" + s.Substring(s.Length-4,4);

给真实号码发短信 那么就在旁边隐藏一个控件来存真实的电话号码,用户是看不见的
------解决方案--------------------
既然是敏感数据,只需看部分,那就直接在写入表格的时候就坐中间4位替换,不用那么麻烦的判断,也不用隐藏列了,除非有的有权限的操作员还要查看非加密号码或者修改。