以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求助:登录名后有很多空格,User.Name也必须加".Trim"才能正常使用 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99157) |
-- 作者:guning008 -- 发布时间:2017/4/13 15:18:00 -- 求助:登录名后有很多空格,User.Name也必须加".Trim"才能正常使用 我用了外部数据表来管理用户信息。是在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编辑过]
|
-- 作者:有点色 -- 发布时间:2017/4/13 15:27:00 -- 如果你设置成 nchart(50) 才会自动填充空格,nvarchar(50)不会填充空格。
你尝试新增一个用户,看其保存的数据有没有空格。
如果只是你原来数据有空格,你可以写代码把清除,保存,即可
For Each dr As DataRow In DataTables("users").DataRows |
-- 作者:guning008 -- 发布时间:2017/4/13 15:35:00 -- 色老师,你太棒了! 我重新打开SQL里面用户的数据表,发现果真是我把Name设置成了nchart(50) 非常感谢。 |