C# 验证保存到数据库时数据字段是否过大?
我有一个作为windows服务运行的应用程序,它读取文本数据文件,然后将文件内容映射到数据库。该应用程序使用批提交,并且周期性地将数据大于数据库字段C# 验证保存到数据库时数据字段是否过大?,c#,C#,我有一个作为windows服务运行的应用程序,它读取文本数据文件,然后将文件内容映射到数据库。该应用程序使用批提交,并且周期性地将数据大于数据库字段 在尝试将数据字段保存到数据库之前,验证数据字段是否过大的最佳方法是什么?要进行验证,可以使用datatable读取数据库字段的最大长度 (VB.NET代码) 也许这个链接会有帮助 如果您愿意使用,您可以这样做 public class Customer { [StringLength(5)] public string Name {
在尝试将数据字段保存到数据库之前,验证数据字段是否过大的最佳方法是什么?要进行验证,可以使用datatable读取数据库字段的最大长度 (VB.NET代码) 也许这个链接会有帮助 如果您愿意使用,您可以这样做
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();
}
}
在这种情况下,将引发异常,因为名称字段太大,这是由StringLength
属性强制执行的
您还可以使用,它将返回错误列表,而不是引发异常
验证框架非常强大。可以对字符串使用正则表达式验证。数字字段的范围验证,甚至自定义验证。是否要截断数据以使其适合,忽略这些行,忽略整个文件,或者什么?在应用程序启动时,从DB读取字段的大小定义,如此处或此处还有用于验证数字属性的RangeAttribute
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();
}
}