0

好吧,这可能听起来有点傻。我想得越多,听起来就越愚蠢。

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

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

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

4

2 回答 2

2

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

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

于 2012-08-21T14:14:06.730 回答
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("','")+')');

完毕!

PS:这是伪代码我不是 C# 开发人员。

于 2012-08-21T14:47:30.897 回答