在一个按钮响应函数下,我先使用数据库查询函数想看看接下来要插入的内容是否有重复,然后经过判断成功红调用插入。
目前是,单独调用插入没问题,加上判断也可以进入正确判断内,但二者同时使用就无法插入了,不知是有一个响应函数内调用两个数据库语句会有问题的可能吗?
MFC中数据库调用通常有以下几个步骤:
c++
CDatabase db;
db.Open(_T("DSN=mydsn;UID=myuid;PWD=mypwd"));
c++
CRecordset rs(&db);
rs.Open(_T("SELECT * FROM mytable"));
c++
CDBRecordset rs(&db);
rs.Open(_T("SELECT * FROM mytable"));
CDBFieldsInfo* pInfo = rs.GetFields();
CString strName = pInfo->m_pFieldInfos->m_strName; // 字段名
short nType = pInfo->m_pFieldInfos->m_nSQLType; // 字段类型
c++
while(!rs.IsEOF()) {
CString name = rs["name"];
int age = rs["age"];
rs.MoveNext();
}
c++
rs.Close();
db.Close();
这是MFC数据库访问的基本流程和用法。如果在调用数据库时遇到问题,通常是:
检查下变量是否有冲突
断点看插入语句都对吗
1.新建一个MFC对话框工程,按如下布局添加相关按钮。
2.1. 三个单选框默认ID为IDC_RADIO1,IDC_RADIO2和IDC_RADIO3,不更改,使用默认。
2.2. 为四个复选框关联4个控件类型变量,具体类型为CButton,变量名称分别为m_CheckLike1,m_CheckLike2,m_CheckLike3,m_CheckLike4,如图:
3.为单选框设置默认被选中状态 :
在OnInitDialog()函数 // TODO: Add extra initialization here下面添加一行代码: