【发布时间】:2011-04-29 08:42:55
【问题描述】:
我有一个使用 SQLite 访问数据库的程序。当我在执行 SQLite 调用之前打开 OpenFileDialog 或 SaveFileDialog 时:
result = sqlite3_prepare_v2(databaseConnection,converted,10000,&stmt,&strptr);
然后选择“取消”,一切正常(result == SQLITE_OK)但是当我选择“打开”时,即使我不对对话框的返回文件做任何事情,它也会中断(result == SQLITE_ERROR)。您知道为什么会发生这种情况吗?
非常感谢您的宝贵时间!
编辑:这是我正在使用的代码:
OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog;
openFileDialog1->ShowDialog();
sqlite3_stmt * stmt;
const char * strptr;
sqlite3 * databaseConnection;
int result = sqlite3_open("virtualpatient_chat.db", &databaseConnection);
if (result != SQLITE_OK) return;
result = sqlite3_prepare_v2(databaseConnection,"SELECT * from mappings;",10000,&stmt,&strptr);
if (result != SQLITE_OK) return;
奇怪的是,它在我当前的项目中不起作用,但我将它复制并粘贴到一个全新的项目中,并且错误不再重复。现在我只是想弄清楚我周围代码中的问题可能是什么......
【问题讨论】:
-
更多代码会更好,尤其是 OpenFileDialog 对象构造和 ShowDialog 调用。
-
您是在使用对话框选择数据库文件吗?当你打开 sqlite 数据库文件时,你不应该对它做任何事情(即有一个连接)。
标签: c++ winforms sqlite openfiledialog savefiledialog