CDatabase database;
CString sSql;
CString sItem1, sItem2, sItem3, sItem4, sItem5, sItem6, sItem7, sItem8;
CString sDriver;
CString sDsn;
CString sFile, sPath;
CFileDialog dlgFile(TRUE, NULL, NULL, OFN_HIDEREADONLY, _T("Excel 文件(*.xls)|*.xls||"), NULL);
CString strFileName;
if(dlgFile.DoModal() == IDOK)
{
strFileName = dlgFile.GetPathName();
}
else
{
AfxMessageBox(_T("未选中任何文件!"));
return ;
}
//检索是否安装有Excel驱动“Microsoft Excel Driver (*.xls)”
sDriver = GetExcelDriver();
if (sDriver.IsEmpty())//没有发现驱动
{
AfxMessageBox("没有安装Excel驱动!");
return;
}
CString FileName, strExtension;
FileName=this->GetFileTitleFromFileName(strFileName,TRUE);//获取路径文件
//创建进行存取的字符串
sDsn.Format("DRIVER={%s}; DSN=''; DBQ=%s", sDriver, FileName);
TRY
{
database.Open(NULL, false, false, sDsn);//打开数据库(即EXCEL文件)
CRecordset recset(&database);
sSql = "SELECT 学号, 姓名, 性别, 出生日期, 年级, 班级, 密码, 备注"
" FROM DSO_DX"
" ORDER BY 学号";
//执行查询语句
recset.Open(CRecordset::forwardOnly, sSql, CRecordset::readOnly);
以上为导入的主要代码,到最下面Open的时候报错如下图
我在EXCEL表中也设置了列表框DSO_DX,但一直报这个错,请各位帮帮忙看下哪里的问题?