以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何区分用户录入全角的挂号与半角的挂号  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=153255)

--  作者:huangfanzi
--  发布时间:2020/8/5 11:18:00
--  [求助]如何区分用户录入全角的挂号与半角的挂号
\'\'\'
Dim s1 As String = "XX(上海)"
Dim s2 As String = "XX(上海)"
If s1 = s2 Then
    Output.Show("一样")
Else
    Output.Show("不一样")
End If

上面是一段显示代码,结果是“一样”,系统不能区别全角的挂号与半角的挂号吗?
谢谢老师
[此贴子已经被作者于2020/8/5 11:18:09编辑过]

--  作者:有点蓝
--  发布时间:2020/8/5 11:29:00
--  
\'\'\'
Dim s1 As String = "XX(上海)"
Dim s2 As String = "XX(上海)"
If s1.Equals(s2) Then
    Output.Show("一样")
Else
    Output.Show("不一样")
End If

--  作者:huangfanzi
--  发布时间:2020/8/5 11:42:00
--  
Equals 是什么意思,帮助文件中没找到
以下是我项目中实际代码,我认为全角与半角是不一样的,但下面代码是按一样处理的,请问应该如何修改
Dim lb As WinForm.Label = e.Form.Controls("Label_代码")
Dim dr As DataRow
dr = _dt公司名录.SQLFind("公司 = \'" & e.Sender.Value & "\' And 代码 <> \'" & lb.Text & "\'")
If dr IsNot Nothing Then \'如果找到的话
    e.Cancel = True
    MessageBox.Show("所录入的公司名已经存在,请检查!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
[此贴子已经被作者于2020/8/5 11:45:38编辑过]

--  作者:有点蓝
--  发布时间:2020/8/5 12:00:00
--  
数据库默认是不区分全角与半角的。如果是SqlServer,后台查询,可以这样:

dr = _dt公司名录.SQLFind("公司 = \'" & e.Sender.Value & "\' And 代码 <> \'" & lb.Text & "\' collate Chinese_PRC_CI_AS_WS")

内部表和access就没有办法了,建议限制只能录入半角。