如何从c#中读取Foxpro 8.0数据库?

我需要将表从foxpro 8.0导入到sql server。 如何从C#中的foxpro目录/文件中读取表和模式,以便在SQL Server中创建表并复制数据?

您可以通过在OleDb.Connection类上使用GetSchema方法来实现此目的。

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() ); } } 

您可以使用ODBCConnection。 我知道foxpro正在使用.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 } 

除了RJ的答案提供的“驱动程序”之外,请转到MS并获取VFP OleDB提供程序……如果处理数据库容器,可能会遇到兼容性问题。