【发布时间】:2010-10-29 07:32:56
【问题描述】:
我需要将表从 foxpro 8.0 导入到 sql server。如何从 C# 中的 foxpro 目录/文件中读取表和架构,以便在 SQL Server 中创建表并复制数据?
【问题讨论】:
标签: c# .net visual-foxpro
我需要将表从 foxpro 8.0 导入到 sql server。如何从 C# 中的 foxpro 目录/文件中读取表和架构,以便在 SQL Server 中创建表并复制数据?
【问题讨论】:
标签: c# .net visual-foxpro
您可以通过在 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 提供程序...如果处理数据库容器,您可能会遇到兼容性问题。
【讨论】: