c# – 从SQL表记录创建.DBF文件
我想从SQL表记录创建一个.DBF文件.
例如,如果在SQL中有一个名为CountryMaster的表,它有5列: > ID int identity(1,1) 它有100行. 如何使用C#中的.DBF文件中的头文件导出这些记录? 注意:创建的.DBF文件大小必须非常紧凑. 解决方法
您可以看到
Xbase Data file (*.dbf)结构并编写自己的代码,但我已经完成了实现,并且已经使用了多年.在这里,您可以在
GitHub找到它
如何使用该库 在名为DbfFile.cs的文件中有一些写入方法.你可以使用它们中的任何一个.我将解释其中一些: 第一种写法 将DataTable另存为dbf文件: static void Write(string fileName,System.Data.DataTable table,Encoding encoding) > fileName:是您希望保存.dbf输出文件的位置. 第二种写法 保存列表< T>进入dbf文件. static void Write<T>(string fileName,List<T> values,List<Func<T,object>> mapping,List<DbfFieldDescriptor> columns,Encoding encoding) 读取数据库并将结果保存到某个类类型,然后使用此方法将类值保存到dbf文件.这是对它的参数的描述: > fileName:要保存的dbf文件名 第二种写入方法的示例 由于第一种方法是直接的,我提供了第二种写方法的示例.考虑您要保存List< MyClass>将数据转换为dbf文件.这是代码 class MyClass { public int Id {get;set;} public string Name {get;set;} } 现在您可以保存List< MyClass>进入像这样的dbf文件: var idColumn = DbfFieldDescriptors.GetIntegerField("Id"); var nameColumn = DbfFieldDescriptors.GetStringField("Name"); var columns = new List<DbfFieldDescriptor>() { idColumn,nameColumn }; Func<MyClass,object> mapId = myClass => myClass.Id; Func<MyClass,object> mapName = myClass => myClass.Name; var mapping = new List<Func<MyClass,object>>() { mapId,mapName }; List<MyClass> values = new List<MyClass>(); values.Add(new MyClass() { Id = 1,Name = "name1" }); DbfFileFormat.Write(@"C:yourFile.dbf",values,mapping,columns,Encoding.ASCII);
好好享受. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |