OpenFileDialog-> DialogShow()的结果会导致SQLite的错误

我有一个访问数据库使用SQLite的程序。 当我打开的OpenFileDialog或SaveFileDialog之前,我做了SQLite的电话:

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;

奇怪的是,它不会在我的当前项目工作,但我复制并粘贴到一个全新的项目,误差不重复。 现在,我只是试图找出什么在我的周围代码中的问题可能是...

--------------解决方案-------------

有没有希望来诊断的问题,问题的根源。 只是一些指针。

首先,在打开文件对话框的RestoreDirectory设置为True。 这可确保单击打开不改变程序的工作目录。 如果这样的作品,然后有一个颇具神秘色彩的依赖查询当前目录。

接下来的事情担心是,当您使用的对话框,越来越加载的DLL。 项目+属性,调试选项卡,勾选“启用非托管代码调试”。 退房的输出窗口在打开的对话​​框中,它显示了DLL列表得到注入。 这些外壳扩展,其中一人可能使用SQLite冲突。 没有真正的线索这样的扩展可能会做超越,也许破坏内存或使用SQLite本身。 您可以暂时禁用外壳扩展与Sysinternals的自动运行程序。 先从不写微软的人。

我终于想通了如何解决它。 根据属性为我的对话框中,我不得不在RestoreDirectory属性设置为true。 我不太清楚怎么说固定它,除非以某种方式改变其所作的SQLite无法找到我的数据库文件的目录。

感谢您的帮助!

分类:C# 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.244 (s). 10 q(s)