文件助手从sql读取数据

时间:2012-07-29 17:34:56

标签: .net filehelpers

我最近开始使用filehelpers。

FileHelperEngine engine = new FileHelperEngine(typeof(Customer));
Customer[] customers = (Customer[]) engine.ReadFile(@"..\Data\CustomersDelimited.txt");

我不是从文件中读取数据,而是从SQL服务器表中读取数据,然后格式化数据并写入文件。

请告知您是否有人参与此方案。

2 个答案:

答案 0 :(得分:0)

您的问题中没有太多细节。但是,我收集的是你当前正在使用

http://filehelpers.sourceforge.net/

从平面文件读取/写入数据记录。

开始阅读和编写SQL Server数据库的最简单方法是使用Entity Framework。特别使用Code First方法。它将与您现在正在做的最接近。

查看http://msdn.microsoft.com/en-us/data/ef.aspx即可开始使用。

使用实体框架代码首先,您可以从/向数据库读取和编写对象实例,而不会像现在使用平面文件那样复杂。

答案 1 :(得分:0)

文件助手在网站上提供了一些示例。

代码看起来像这样(基于链接的示例)

SqlServerStorage storage = new SqlServerStorage(typeof(OrdersVerticalBar)); 

storage.ServerName = "MyServerName"; 
storage.DatabaseName = "Northwind"; 

storage.FillRecordCallback = new FillRecordHandler(FillRecordOrder);   

FillRecords方法应如下所示

protected void FillRecordOrder(object rec, object[] fields) 
{ 
    OrdersVerticalBar record = (OrdersVerticalBar) rec; 

    record.OrderID = (int) fields[0]; 
    record.CustomerID = (string) fields[1]; 
    record.EmployeeID = (int) fields[2]; 
    record.OrderDate = (DateTime) fields[3]; 
    record.RequiredDate = (DateTime) fields[4]; 

    if (fields[5] != DBNull.Value) 
         record.ShippedDate = (DateTime) fields[5]; 
    else 
         record.ShippedDate = DateTime.MinValue; 

    record.ShipVia = (int) fields[6]; 
    record.Freight = (decimal) fields[7]; 
} 

然后,您可以运行以下命令将内容直接写入输出文件。

FileDataLink.EasyExtractToFile(storage, "outfile.txt");