Foxtable(狐表)用户栏目专家坐堂 → 求助:登录名后有很多空格,User.Name也必须加".Trim"才能正常使用


  共有1792人关注过本帖树形打印复制链接

主题:求助:登录名后有很多空格,User.Name也必须加".Trim"才能正常使用

帅哥哟,离线,有人找我吗?
guning008
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:44 积分:600 威望:0 精华:0 注册:2016/10/1 11:15:00
求助:登录名后有很多空格,User.Name也必须加".Trim"才能正常使用  发帖心情 Post By:2017/4/13 15:18:00 [显示全部帖子]

我用了外部数据表来管理用户信息。是在SQL2005里面直接创建了一个User的表,严格按照帮助文档里面的方法添加的

Name nvarchar(50) 设为了主键
Type int
Config ntext

一直发现登录的时候窗口中用户名一栏和以前的项目不同,是个蓝条,今天才发现,这个蓝条是因为用户名后面有n个空格,然后默认又是全选状态,所以选了很多空格就是一个蓝条。

前几天也发现一次引用 User.Name的时候出错,当时的解决办法是设置一个变量,然后把User.Name赋值给这个变量,就正常了。

今天在PrepareEdit事件中再次引用 User.Name,一直无效,折腾许久才发现是空格搞得怪。

下面的代码可以正常工作,因为 User.Name 后面加了 .Trim,否则就无效。

If e.Row("业务员") <> User.Name.Trim Then
    e.Cancel = True
End If

我在想是否因为在SQL中设置了那个 Name 是 nvarchar(50),这个50是不是字符数?难道SQL2005自动给后面补充满了50个字符?因为我把登录框用户名那里点了一下用光标挪到最左面,然后用光标从左向右一个一个数,发现加上名字的三个字正好是50个字符。
而如果用开发者登录一次,然后下次登录就能看到只有开发者三个字,没有那些看不到头的空格造成的蓝条。我觉得是因为开发者账户是存储在项目中,而不是在SQL的数据表中。

是否应该在SQL里面修改一下Name的长度?还是有别的设置技巧?Name 允许 Null 值等?

求解,谢谢!



[此贴子已经被作者于2017/4/13 15:27:20编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
guning008
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:44 积分:600 威望:0 精华:0 注册:2016/10/1 11:15:00
  发帖心情 Post By:2017/4/13 15:35:00 [显示全部帖子]

色老师,你太棒了!

我重新打开SQL里面用户的数据表,发现果真是我把Name设置成了nchart(50) 

非常感谢。

 回到顶部