MFC ODBC类 Access数据库的操作
2008年11月17日
新建一个Access数据库,数据库名是data.mdb新建一个表Ttest,两个字段ID,name
表内容如下
ID name
1 xxx
2 yyy
3 zzz
目的:根据ID的值,查找出对应的name字段的值
需要头文件 "afxdb.h"
char* old_locale = _strdup( setlocale(LC_CTYPE,NULL) );
setlocale( LC_CTYPE, "chs" );
CString strSql;
CString strName;
CString strDriver = _T("MICROSOFT ACCESS DRIVER (*.mdb)");//指明操作的数据库是ACCESS数据库
CString strDsn;
CString strFile = _T("C://data.mdb");//数据库的路径
CString strId;//字段ID
strDsn.Format(_T("ODBC;DRIVER={%s};UID=;PWD=;DBQ=%s"),strDriver,strFile);
//DSN字符串,DBQ:Database Qualifier
TRY
{
CDatabase db;
db.Open(NULL,false,false,strDsn);
CString strConnect = db.GetConnect();
CRecordset rs(&db);
strSql = _T("select * from Ttest");
rs.Open(CRecordset::dynaset,strSql,CRecordset::readOnly);
while(!rs.IsEOF())
{
rs.GetFieldValue(_T("ID"),strName);//读取数据库内容的代码
if(strName==_T("2"))
{
CString strName
rs.GetFieldValue(_T("name"),strName);
MessageBox(strName);
break;
}
rs.MoveNext();
}
db.Close();
}
CATCH(CDBException,e)
{
AfxMessageBox(_T("Database Error:") + e->m_strError);
}
END_CATCH;
在VC++2005中调试通过