Ich muss Tabellen von FoxPro 8.0 auf SQL Server importieren. Wie lese ich die Tabellen & Schema aus einem FoxPro-Verzeichnis/Dateien in C#, damit ich die Tabellen in SQL Server erstellen und die Daten kopieren kann?Wie lese ich eine FoxPro 8.0-Datenbank von C#?
5
A
Antwort
1
Sie können ODBConnection verwenden. Ich weiß, FoxPro verwendet .dbf-Dateien.
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
Mit Ausnahme der „Driver“ providd von RJ Antwort auf MS gehen und den VFP OLE DB-Provider bekommen ... Sie könnten Kompatibilitätsprobleme haben, wenn sie mit einer Datenbank-Container handelt.
7
Sie können dies mithilfe der GetSchema-Methode für die OleDb.Connection-Klasse erreichen.
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()
);
}
}
warum der downvote? Funktioniert das nicht? – bbqchickenrobot
Ich bin nicht der Downvoter, aber richtig das würde nicht mit Versionen nach VFP6 funktionieren. –
Visual FoxPro dbf ist nicht das gleiche wie dBASE – Roel