c# - FoxPro DBF 表转换为 MySQL 表 C#

标签 c# mysql database visual-foxpro

我正在尝试从 FoxPro DBF 表中选择我想要的列并将它们插入到 MySQL 表中,最好(如果可能)从我选择的列动态创建 SQL 表。

我看过了,我不明白这可能是围绕 SQL 语句构建的 "SELECT INTO FROM" 但我不确定如何做到这一点,尤其是在 C# 中以编程方式执行此操作尤其是当我从 DBF 转到 MySQL,而不是从 MySQL 转到 MySQL 时的场景。

有人可以建议我如何在 C# 中执行此操作吗?我已经有了这样的 OleDB 连接设置;

public void runDbfCmd()
{
    string constr = ConfigurationManager.ConnectionStrings["dbfString"].ConnectionString;

    using (OleDbConnection dbfCon = new OleDbConnection(constr))
    {
        try
        {
            dbfCon.Open();
            OleDbCommand dbfCmd = new OleDbCommand("SELECT INTO STATEMENT HERE");
            dbfCmd.ExecuteNonQuery();
        }
        catch (OleDbException ex)
        {
            throw ex;
        }
        finally
        {
            dbfCon.Close();
        }
    }
}

如您所见,我一直困惑于如何构建命令以及这是否会按照我希望的方式工作。

最佳答案

如果您想通过在 FoxPro 端发送 SQL 语句来执行此操作,则您建议的 FoxPro 语句 Select ... From ... Into ... 可能不会执行您所建议的操作想要,因为它将创建一个 FoxPro“Into”目的地,即 DBF 表或“光标”或数组。

而在 FoxPro 方面,如果“插入”目标是 Visual FoxPro“CursorAdapter”,则 SQL Insert Into ... Select ... From ... 将能够执行您想要的操作”对象,或“远程 View ”(驻留在 FoxPro“数据库”DBC 中),两者都可以通过 ODBC 连接到 MySQL 数据库,前者还可以通过 OleDB 连接到 MySQL 数据库。如果您在 FoxPro 端还没有准备好其中任何一个,则需要一个 VFP 开发环境来创建它们,因为并非所有 FoxPro 命令和函数都受其 OleDB 驱动程序支持,另请参阅“OLE 中支持的 Visual FoxPro 命令和函数”数据库提供商”https://msdn.microsoft.com/en-us/library/80x51c04%28v=vs.80%29.aspx

假设您没有 VFP,也许在 C# 端做大多数事情会更容易?例如将“Select ... From ...”语句发送到 FoxPro DB,检索结果并中间存储在C# 端,然后将“Insert ... Into ...”语句发送到 MySQL DB,如果愿意,还可以发送“Create Table ...”语句

关于c# - FoxPro DBF 表转换为 MySQL 表 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32891314/

相关文章:

c# - 如何将 DataGridView 组件添加到 Visual Studio Community 和我的项目

c# - 如何根据引用的dll的文件版本执行不同的语句?

c# - 忽略 OWC11 日期格式

php - Magento 快速 getResourceModel 问题

php - 警告 : dbx: module 'mssql' not loaded

database - SQLite 错误 : Expression tree is too large (maximum depth 1000)

c# - 根据日期和自动递增的数字创建一个唯一的数字

mysql与wordpress的设置

php sql 查询为每个单独的记录返回多行,误用连接?

php - 如何将列数据转换为行数据