【问题标题】:How to validate field length如何验证字段长度
【发布时间】:2025-11-21 22:40:01
【问题描述】:

我在数据库中有一个 Abc 字段,我想确保用户不会超出数据库中字段的限制,因此我使用了“您不能输入超过 50 个字符”的验证。

现在的问题是,由于存储中文、印度文字和其他此类语言的内存占用超过 1 个字节,我将如何验证长度。

现在发生的情况是用户输入了 30 个字符,然后他收到一条显示消息“您不能输入超过 50 个字符”。

对于解决方案,我知道我可以增加数据库的大小或检查字节长度,但这似乎不是一个好主意。

你会采用什么方法来完成它?

【问题讨论】:

  • 这是什么类型的数据库,SQl 服务器?另外,Nvarchar 字段是什么类型?

标签: c# .net database globalization


【解决方案1】:

如果您的 GUI 在 WinForms 或 WPF 中,那么您应该能够在文本字段上设置最大长度,这样可以很好地阻止人们输入超过指定字符数的字符,例如

myTextBox.MaxLength = 50

但是您可以从 VS 设计器中进行设置 - 选择文本框并转到其 MaxLength 属性

【讨论】:

  • 您可能也可以为 ASP.Net 表单执行此操作,尽管我没有检查过......
  • 这个解决方案加上其他建议的 nvarchar 和任何情况都应该得到很好的照顾。 +1 表单示例。
【解决方案2】:

在您的数据库中使用 nvarchar 类型它会限制字符数而不是字节数。

【讨论】:

    【解决方案3】:

    如果你使用 .Net 和 SQl Server 的 nvarchar 字段,你应该没问题我认为

    无论如何,Nvarchar 每个字符存储 2 个字节,因此应该容纳 unicode 字符串 .net 将毫无问题地传递给它。 (换句话说,如果您在数据库中使用 Nvarchar,.Net 和 SQL 中的长度都以字符而不是字节为单位测量)。

    【讨论】:

      最近更新 更多