【问题标题】:How do I read a Foxpro 8.0 database from c#?如何从 c# 读取 Foxpro 8.0 数据库?
【发布时间】:2010-10-29 07:32:56
【问题描述】:

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

【问题讨论】:

    标签: c# .net visual-foxpro


    【解决方案1】:

    您可以通过在 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()
            );
        }
    }
    

    【讨论】:

      【解决方案2】:

      您可以使用 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
              }
      

      【讨论】:

      • 我不是反对者,但这不适用于 VFP6 之后的版本。
      • Visual FoxPro dbf 与 dBASE 不同
      • 问题是这回答了问题而不是版本问题
      • 这对于 .dbf 文件是正确的。根据此处找到的连接字符串:connectionstrings.com/dbf-foxpro
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-05
        • 1970-01-01
        • 2011-06-16
        • 1970-01-01
        • 1970-01-01
        • 2014-11-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多