CFileDlg按确定之后不能打开数据库.是不是Bug?
CFileDialog FileDlg;
//打开数据库(可以)
if(FileDlg.DoModel()==IDOK)
{
//打开Access数据库(不行)
}
//打开数据库(不行)
如果把打开数据库的代码写到打开CFileDialog之前就可以打开,
如果CFileDialog之后就不行。
只要按OK就不行,按Cancel就可以。
谁知道怎么回事,是不是Bug
问题点数:20、回复次数:8Top
1 楼payou444(一天)回复于 2006-06-01 12:22:00 得分 0
没人看么Top
2 楼fenge1981(居易锦风)回复于 2006-06-01 14:42:23 得分 0
具体的代码贴出来!Top
3 楼payou444(一天)回复于 2006-06-13 11:33:10 得分 0
static char BASED_CODE szFilter[]="Chart Files(*.xls)|*.xls|AllFiles(*.*)|*.*||";
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter,NULL);
CString filepath;
if(dlg.DoModal ()==IDOK)
{
filepath=dlg.GetPathName ();
}
else
return ;
经过测试,打开EXcel文件之后再此代码后边执行的关于数据库的代码出现未知错误.
如果没有打开文件或者打开的是TXT文件则,后边的关于数据库的代码正常执行.
Top
4 楼seu07201213(【_】〖汪洋中的一片叶子〗≈^︵^≈)回复于 2006-06-13 11:44:39 得分 0
打开Access数据库的路径写成绝对路径呢??Top
5 楼jimlei76(ly)回复于 2006-06-13 11:56:42 得分 0
测试一下调用CFileDialog前后的程序当前目录,估计目录不对了!
Top
6 楼payou444(一天)回复于 2006-06-13 12:19:11 得分 0
如果不使用CFileDialog就没有问题,使用绝对路径可以.但是,这到底怎么回事,我获得Txt文件路径之后仍然可以运行以后数据库代码,获得XLS文件路径之后就不可以了,是不是我的CFileDialog写的有问题?Top
7 楼handsomerun(毛毛)回复于 2006-06-13 12:51:33 得分 20
原因很简单,cfiledialog这个对话框会改变当前路径的,所以你用相对路径打开数据库,用了ok以后,就找不到数据库文件了
用CFileDialog的时候,选上OFN_NOCHANGEDIR
具体参考msdnTop
8 楼payou444(一天)回复于 2006-06-14 12:54:02 得分 0
谢谢,果然是路径的问题,谢谢了.Top




