Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何通过MFC app检查Access db中的db中是否存在具有该id的行_C++_Ms Access_Mfc - Fatal编程技术网

C++ 如何通过MFC app检查Access db中的db中是否存在具有该id的行

C++ 如何通过MFC app检查Access db中的db中是否存在具有该id的行,c++,ms-access,mfc,C++,Ms Access,Mfc,我有以下窗口: 通过此窗口,我可以将新行插入数据库。但我如何检查是否存在具有此类ID的行,比如当我插入具有相同ID的行时,我的应用程序崩溃了。代码如下: void CMikhailovskiiDBView::OnRecordAdd() { // TODO: Add your command handler code here m_pSet->AddNew(); m_bAdding = TRUE; CEdit* pCtrl = (CEdit*)GetDlgI

我有以下窗口:

通过此窗口,我可以将新行插入数据库。但我如何检查是否存在具有此类ID的行,比如当我插入具有相同ID的行时,我的应用程序崩溃了。代码如下:

void CMikhailovskiiDBView::OnRecordAdd()
{
    // TODO: Add your command handler code here
    m_pSet->AddNew();
    m_bAdding = TRUE;
    CEdit* pCtrl = (CEdit*)GetDlgItem(IDC_LibraryID);
    int result = pCtrl->SetReadOnly(FALSE);
    UpdateData(FALSE);
}
通过此方法,我可以访问ID edit,因为当我处理数据(而不是插入行)时,此编辑是只读的。下面是插入db方法的代码:

BOOL CMikhailovskiiDBView::OnMove(UINT nIDMoveCommand)
{
    if (m_bAdding) {
        m_bAdding = FALSE;
        UpdateData(TRUE);
        if (m_pSet->CanUpdate()){
            m_pSet->Update();
            m_pSet->Requery();
            UpdateData(FALSE);
            CEdit* pCtrl = (CEdit*)GetDlgItem(IDC_LibraryID);
            pCtrl->SetReadOnly(TRUE);
            return TRUE;
        }
    }
    else {
        return CRecordView::OnMove(nIDMoveCommand);
    }
}

所以,我甚至不知道我应该在哪里添加ID验证。我将感谢任何帮助。提前谢谢

我想打开一个ID为筛选条件的记录集。如果记录集为空,则ID不存在。ID是主键吗?这不是应该由table autonumber字段生成的吗?只需使用ID进行一次选择,如果此选择返回至少一行,则不应再进一步。(当然,您可以使用单独的方法进行此操作)。