1 未识别数据库
原因:没有选对数据库驱动
分析:如果用的是ACCESS数据库,扩展名是 .accdb,那么在选择数据库驱动的时候,应该选择支持*.accdb的数据库驱动。
控制面板--》管理工具--》ODBC数据源
添加一个新的数据源,在点击添加时,选好驱动,此处我们选择的是支持ACCESS并且支持扩展名为.accdb的驱动。
即 Microsoft Access Driver (*.mdb,*.accdb)
2 控件关联数据库变量
关联的是数据库指针m_pSet的成员变量(表中的字段)
void CDbView::DoDataExchange(CDataExchange* pDX)
{
CRecordView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDbView)
DDX_Text(pDX, IDC_STU_ID, m_pSet->m_stuid);
DDX_Text(pDX, IDC_STU_NAME, m_pSet->m_name);
DDX_Text(pDX, IDC_STU_SEX, m_pSet->m_sex);
DDX_Text(pDX, IDC_PROF_CODE, m_pSet->m_profcode);
//}}AFX_DATA_MAP
}
3 未发现数据源名称并且未指定默认驱动程序
解决思路:添加一个ODBC数据源,选择相应的数据库
控制面板--》管理工具--》ODBC数据源
新添加的数据源名称:学生信息
重新运行下程序,如果还出错的话,可能你今天定义的数据源名称与程序中不同,所以要在程序代码中修改下新的数据源名称。
修改方法如下:
打开C**Set类,这个类操作数据库,包括连接数据源信息
找到 GetDefaultConnect方法
修改,此方法中的数据源名称为我们新添加的那个数据源的名称
CString CDbSet::GetDefaultConnect()
{
return _T("ODBC;DSN=学生信息");
}