以编程方式将SQLite转换为.sql

时间:2012-08-21 14:10:02

标签: c# mysql database sqlite

好吧,这可能听起来有点傻。我想的越多,听起来越傻。

背景
我工作的公司大约一年前聘请了一个人为他们写一些软件。该软件(用VB6编写)适用于钻井用品制造商(传感器,钻头等)。无论如何,该软件安装在钻机现场,并提供过多的信息(钻头深度,转速等)。现在,每10秒读取一次,并保存到文件中。 (我最初被告知当地的一个SQL数据库,但事实证明这是错误的。)这个文件显然只能在SQLite数据库浏览器中打开(在任何文本编辑器中打开它都会导致查看垃圾,基本上)。

前进
我被聘请编写一个程序来获取保存的数据,并根据它创建每日报告。最初,有人告诉我,本地机器上有一个存储信息的MySQL数据库。但是,我最近才发现事实并非如此。它存储在此文件中。我可以在SQLite数据库浏览器中打开该文件,并将其导出为.sql文件,这一切都很棒。问题是,我的雇主希望以编程方式完成此操作。

我的问题
有没有办法以编程方式将此SQLite文件转换为.sql,或者将此信息上传到本地MySQL数据库的最佳途径是什么?非常感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

您是否考虑过只使用.NET的SQLite数据提供程序并以这种方式打开和读取数据?您可以轻松地从SQLite数据库中读取数据,并将其写入MySQL数据库(使用适当的MySQL数据提供程序)。

以下是我过去使用的SQLite数据提供程序:http://sqlite.phxsoftware.com/我不确定是否有更新的(或更好的)。

答案 1 :(得分:0)

使用SQLite Manager应用程序对SQLite数据库中的数据进行* .sql文件转储。将生成的* .sql文件导入MySQL数据库。

编写将使用此代码的C#脚本:

sqlite_db_handler.query('SELECT * FROM dbname.sqlite_master WHERE type='table'');

获取SQLite数据库中所有表的列表。

遍历每个表并使用以下代码:

sqlite_db_handler.query('SELECT * FROM '+table_name);

使用以下代码迭代每个结果行:

mysql_db_handler.query('REPLACE INTO '+table_name+' VALUES('+row.join("','")+')');

完成!

P.S。:这是伪代码我不是C#开发人员。