txt texto separado por manejo lineas leer guardar escribir ejemplos datos crear como comas archivos archivo agregar c# .net dbf dbase

texto - ¿Cómo leer/escribir archivos dBase III usando C#/. NET ODBC u OLE?



leer y escribir archivos en c# (5)

He buscado varias técnicas sobre cómo leer / escribir archivos dBase III (dbf) usando OLEDB u ODBC con C # /. NET. He intentado casi todas las técnicas publicadas, pero sin éxito. ¿Alguien me puede apuntar en la dirección correcta?

Gracias por tu tiempo.


Algo como ... ?

ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=e:/My Documents/dBase;Extended Properties=dBase III" Dim dBaseConnection As New System.Data.OleDb.OleDbConnection(ConnectionString ) dBaseConnection.Open()

De: http://bytes.com/forum/thread112085.html


Los archivos FoxPro 2.0 eran exactamente los mismos que los archivos dBase III con un bit adicional para cualquier campo que fuera de tipo "memo" (no estoy seguro del nombre exacto, ha pasado un tiempo). Eso significa que si solo usa un método de FoxPro 2.x para acceder a los archivos, debería funcionar.



He ofrecido muchas respuestas sobre cómo trabajar con archivos de bases de datos (más específicamente VFP, pero el proveedor de Microsoft VFP OleDb reconocerá archivos dbase más antiguos. Puede hacer una búsqueda para encontrar más de estos enlaces a través de:

usuario: 74195 [vfp] [oledb]

Primero, comenzaría con la descarga de Microsoft VFP OleDb Provider .

A continuación, si ya tiene algunos archivos dbf a los que intenta conectarse para realizar pruebas, debe establecer una conexión. La conexión debe apuntar a la RUTA donde se encuentran los archivos, no al archivo específico .dbf. Entonces, si tiene una carpeta con 20 tablas, una vez que se conecta a la RUTA, puede consultar desde cualquiera / todas las tablas a través de la sintaxis estándar de VFP-SQL (común con muchos SQL la estructura general, pero diferente según algunas funciones como manipulaciones de cadena, fecha y número).

Obtenga información acerca de PARAMETERIZAR sus consultas. Con VFP OleDb, los parámetros se realizan con el "?" carácter como marcador de posición, por lo que los parámetros deben agregarse en la misma secuencia exacta en que aparecen en la consulta. Los "?" puede aparecer como valores de campo, condiciones de unión, donde criterios, etc.

Los siguientes son algunos para comenzar a HOPEAMENTE comenzar con una conexión válida, consultar, luego insertar / actualizar / eliminar con parámetros.

  1. Muestra que muestra una cadena de conexión y consulta simple de una tabla

  2. Muestra una inserción sql parametrizada, pero en este caso obtiene los datos de otra fuente de datos, como sql-server y la creación de una tabla de estilo VFP / dbf. Pasa cíclicamente por registros y tirando valores para cada parámetro e insertando.

  3. y otra muestra SQL-update parametrizada

Buena suerte, y hay muchos otros que responden sobre VFP y OleDb Access, estos son algunos de los que he participado específicamente y muestran implementaciones funcionales que pueden tener algo que de otra manera podrían haber pasado por alto.


Me doy cuenta de que este es un hilo viejo, pero en caso de que alguien llegue aquí por google (como hace unos días). Como escribí aquí , la solución más elegante es usar LINQ para VFP para leer y escribir en archivos DBF. Lo probé con algunos archivos dBase III. Dice así:

Usted define su tabla para que coincida con la definición DBF como esta:

public partial class MyTable { public System.Int32 ID { get; set; } public System.Decimal Field1 { get; set; } public System.String Field2 { get; set; } public System.String Field3 { get; set; } }

Usted define el contexto de esta manera:

public partial class Context : DbEntityContextBase { public Context(string connectionString) : this(connectionString, typeof(ContextAttributes).FullName) { } public Context(string connectionString, string mappingId) : this(VfpQueryProvider.Create(connectionString, mappingId)) { } public Context(VfpQueryProvider provider) : base(provider) { } public virtual IEntityTable<MyTable> MyTables { get { return this.GetTable<MyTable>(); } } }

Usted define atributos de contexto como este:

public partial class ContextAttributes : Context { public ContextAttributes(string connectionString) : base(connectionString) { } [Table(Name="mytable")] [Column(Member="ID", IsPrimaryKey=true)] [Column(Member="Field1")] [Column(Member="Field2")] [Column(Member="Field3")] public override IEntityTable<MyTable> MyTables { get { return base.MyTables; } } }

También necesita una cadena de conexión, puede definirla en app.config así (en este caso, la ruta de Data/ relativa se utiliza como fuente de archivos DBF):

<connectionStrings> <add name="VfpData" providerName="System.Data.OleDb" connectionString="Provider=VFPOLEDB.1;Data Source=Data/;"/> </connectionStrings>

Y, por último, puede realizar la lectura y escritura desde y hacia los archivos DBF tan simple como:

// Construct a new context var context = new Context(ConfigurationManager.ConnectionStrings["VfpData"].ConnectionString); // Write to MyTable.dbf var my = new MyTable { ID = 1, Field1 = 10, Field2 = "foo", Field3 = "bar" } context.MyTables.Insert(my); // Read from MyTable.dbf Console.WriteLine("Count: " + context.MyTables.Count()); foreach (var o in context.MyTables) { Console.WriteLine(o.Field2 + " " + o.Field3); }