我有一个应用程序作为 Windows 服务运行并读取文本数据文件,然后将文件内容映射到数据库。该应用程序使用批量提交并定期数据大于数据库字段。
在尝试将数据字段保存到数据库之前验证数据字段不是太大的最佳方法是什么?
我有一个应用程序作为 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它将返回错误列表而不是引发异常。
验证框架非常强大。您可以对字符串使用正则表达式验证。数字字段的范围验证,甚至自定义验证。
要验证您可以使用数据表来读取数据库字段的最大长度。
(VB.NET 代码)
DataTable[] myDataTable;
oleDbDataAdapter1.Fill(dataSet11);
myDataTable = oleDbDataAdapter1.FillSchema(dataSet11, System.Data.SchemaType.Source);
TextBox1.Text = myDataTable[0].Columns[0].MaxLength.ToString()
也许这个链接会有所帮助......