2010-10-29 17 views

risposta

1

È possibile utilizzare ODBCConnection. So che foxpro sta usando i file .dbf.

OdbcConnection Conn = new OdbcConnection("Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=C:\\tbl.dbf;"); 
     String SQL = "SELECT * FROM tbl.dbf"; 
     Conn.Open(); 
     OdbcCommand MyCommand = new OdbcCommand(SQL,Conn); 
     OdbcDataReader dr = MyCommand.ExecuteReader(); 
     while (dr.Read()) 
     { 
      //your code 
     } 
+1

why theh downvote? Non funziona? – bbqchickenrobot

+0

Non sono il downvoter, ma questo non funzionerebbe con le versioni successive a VFP6. –

+0

Visual FoxPro dbf non è la stessa di dBASE – Roel

1

Ad eccezione del "Driver" providd dalla risposta di RJ, andare a MS e ottenere il provider VFP OleDB ... Si potrebbe avere problemi di compatibilità se si tratta di un contenitore di database.

7

È possibile eseguire ciò tramite il metodo GetSchema nella classe OleDb.Connection.

OleDbConnection connection = new OleDbConnection(
    "Provider=VFPOLEDB.1;Data Source=.\\Northwind\\Northwind.dbc;" 
); 
connection.Open(); 
DataTable tables = connection.GetSchema(
    System.Data.OleDb.OleDbMetaDataCollectionNames.Tables 
); 

foreach (System.Data.DataRow rowTables in tables.Rows) 
{ 
    Console.Out.WriteLine(rowTables["table_name"].ToString()); 
    DataTable columns = connection.GetSchema(
     System.Data.OleDb.OleDbMetaDataCollectionNames.Columns, 
     new String[] { null, null, rowTables["table_name"].ToString(), null } 
    ); 
    foreach (System.Data.DataRow rowColumns in columns.Rows) 
    { 
     Console.Out.WriteLine(
      rowTables["table_name"].ToString() + "." + 
      rowColumns["column_name"].ToString() + " = " + 
      rowColumns["data_type"].ToString() 
     ); 
    } 
} 
Problemi correlati