c# - 保存到数据库时验证数据字段是否太大?

标签 c#

我有一个作为 Windows 服务运行并读取文本数据文件的应用程序,然后将文件内容映射到数据库。该应用程序使用批量提交,并且数据会定期大于数据库字段。

在尝试将数据字段保存到数据库之前验证数据字段不会太大的最佳方法是什么?

最佳答案

如果你愿意用System.ComponentModel.DataAnnotations你可以做这样的事情。

public class Customer
{
    [StringLength(5)]
    public string Name { get; set; }

    [StringLength(20)]
    public string Phone { get; set; }

    [StringLength(30)]
    public string Email { get; set; }

    [StringLength(30)]
    public string Address { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        Customer c = new Customer 
        {
            Name = "FooBarX",
            Phone = "555-5555-33 ext 234",
            Email = "foobar@foobar.com",
            Address = "1334 foobar ave, foobar CA"
        };

        var ctx = new ValidationContext(c, null, null);
        Validator.ValidateObject(c, ctx,true);

        Console.Read();
    }
}

Validator.ValidateObject在这种情况下将抛出异常,因为 Name 字段太大,这是由 StringLength 属性强制执行的。

您还可以使用 Validator.TryValidateObject这将返回一个错误列表而不是抛出异常。

验证框架非常强大。您可以对字符串使用正则表达式验证。数字字段的范围验证,甚至自定义验证。

关于c# - 保存到数据库时验证数据字段是否太大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12324962/

相关文章:

c# - 从 OpenFileDialog 获取文件大小?

c# - 在 VS2010 中打开 .mdproj 文件

c# - 用于将数据与文件系统路径相关联的高效数据结构?

c# - 为什么我的子类需要用默认参数覆盖?

c# - 如果我缩放图片 WPF,AdornerLayer 会超出 Border

c# - 寻找中位数的选择算法

c# - 如何区分触摸屏和普通触摸屏?

c# - Avalondock-某些面板的布局恢复延迟

c# - 如何避免大型多步骤单元测试?

javascript - 如何检查变量是否是 C# 中嵌入的 Javascript(noesis.Javascript) 中的数组?