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

时间:2012-09-07 20:30:44

标签: c#

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

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

2 个答案:

答案 0 :(得分:1)

如果你愿意使用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会在这种情况下抛出异常,因为“名称”字段太大而导致StringLength属性强制执行。

您还可以使用Validator.TryValidateObject,它会返回错误列表,而不是抛出异常。

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

答案 1 :(得分:0)

要验证您可以使用数据表来读取数据库字段的最大长度。

(VB.NET代码)

                DataTable[] myDataTable; 
                oleDbDataAdapter1.Fill(dataSet11); 
                myDataTable = oleDbDataAdapter1.FillSchema(dataSet11, System.Data.SchemaType.Source); 
                TextBox1.Text = myDataTable[0].Columns[0].MaxLength.ToString()

也许这个链接会有所帮助...

http://forums.asp.net/t/306971.aspx/1