我最近开始使用文件助手。
FileHelperEngine engine = new FileHelperEngine(typeof(Customer));
Customer[] customers = (Customer[]) engine.ReadFile(@"..\Data\CustomersDelimited.txt");
我必须从 SQL Server 表中读取数据,然后格式化数据并写入文件,而不是从文件中读取数据。
请告知是否有人遇到这种情况。
我最近开始使用文件助手。
FileHelperEngine engine = new FileHelperEngine(typeof(Customer));
Customer[] customers = (Customer[]) engine.ReadFile(@"..\Data\CustomersDelimited.txt");
我必须从 SQL Server 表中读取数据,然后格式化数据并写入文件,而不是从文件中读取数据。
请告知是否有人遇到这种情况。
您的问题根本没有太多细节。但是,我收集到的是您目前正在使用
http://filehelpers.sourceforge.net/
从/向平面文件读取/写入数据记录。
开始读取和写入 SQL Server 数据库的最简单方法是使用实体框架。具体使用 Code First 方法。这将最接近你现在正在做的事情。
查看http://msdn.microsoft.com/en-us/data/ef.aspx以开始使用。
使用 Entity Framework Code First,您可以从/向数据库读取和写入对象实例,而不会比您现在使用平面文件所做的复杂得多。
File Helpers 在网站上提供了一个示例。
代码如下所示(基于链接示例)
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");