【问题标题】:VB.NET removing formatting from a formatted Phone number before inserting into SQL ServerVB.NET 在插入 SQL Server 之前从格式化的电话号码中删除格式
【发布时间】:2017-03-10 15:26:56
【问题描述】:

输入电话号码时我有一个字符串 - 有一个掩码,所以它总是看起来像 (123) 456-7890 - 我想在将其保存到数据库之前将其格式化。我将它设置为只有 10 个字符作为 nvarchar(10) - 我只需要它是像这样的数字 1234567890。

【问题讨论】:

  • 面具是什么意思?你在使用 MaskedEditControl 吗?
  • @plutonix 是的,我有一个蒙面控件,我试图基本上只将数字插入到 nvarchar(10) 字段中。我的面具 - “(___) ___-____”

标签: sql-server vb.net date formatting


【解决方案1】:

如果您使用的是MaskedTextBox,那么您可以设置属性TextMaskFormat

masked1.Mask = "(999)999-9999" 
tb.Text = "(123)456-7890";
masked1.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals
....
Console.WriteLine(masked1.Text)  ' => 1234567890

当你得到 Text 属性时,你只得到不包括格式化字符的字符

请注意,我已将掩码设置为 9 以仅允许数字。这当然取决于您的应用程序对电话号码的期望。

【讨论】:

  • 这很棒。谢谢!
【解决方案2】:

另一种方法(基本上用“”替换每个非数字字符):

Imports System.Text.RegularExpressions //You need to Import this Namespace

Dim phone as string = "(123) 456-7890 -"
Dim match as string = Regex.Replace(phone, "[^\d]", "")

Console.WriteLine(match)

这输出到:1234567890

【讨论】:

  • 也许你可以帮我解决这个问题 - 我在 sql server 中有一个字段设置为日期时间 - 但是从 vb.net 尝试插入日期时间。现在由于 PM 引发错误
  • 您可以打开另一个问题并在此处发布链接作为评论...您也可以尝试将表格字段更改为 datetime2 并查看问题是否得到解决:)
  • 或者使用这个:Datetime.Now.ToString("yyyy-MM-dd HH:mm:ss")
  • 非常感谢
  • 只有一件事,您可能可以编辑您想要的答案,但您需要在表格顶部包含此内容,以便 REGEX 工作............导入系统。 Text.RegularExpressions
猜你喜欢
  • 2021-02-06
  • 1970-01-01
  • 1970-01-01
  • 2015-11-28
  • 2021-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多