如何使用 MFC 将记录插入 Microsoft Access?

How to insert a record into Microsoft Access using MFC?

如何在 Microsoft Access 中插入记录?

CString SqlString;
CString name="I want to add this variable in Table3";
SqlString = "INSERT INTO Table3 (Name,Numbers) VALUES (name,099)";

当我这样做时出现以下错误:

Database error:Too few parameters.Expected 1.

这是我自己的应用程序的片段:

BOOL CCommunityTalksApp::SetRecordForTalkNumber(int iTalkNumber, UINT uID, CString &rStrError)
{
    CDatabase   *pDatabase;
    CString     strSQL, strField;
    BOOL        bOK;

    pDatabase = theApp.GetDatabase();
    if(pDatabase != nullptr)
    {
        if (iTalkNumber == 9999)
            strField = _T(" ");
        else
            strField.LoadString(uID);
        strSQL.Format(_T("INSERT INTO [Public Talk Titles] ([Theme], [Category], [Talk Number]) VALUES ('%s', 'NS', %d)"), strField, iTalkNumber);

        TRY
        {
            pDatabase->ExecuteSQL((LPCTSTR)strSQL);
            bOK = TRUE;
        }
        CATCH(CDBException, Except)
        {
            rStrError = Except->m_strError;
            bOK = FALSE;
        }
        END_CATCH
    }

    return bOK;
}

如您所见:

  1. 使用 [] 包裹 table 和字段名称以解决任何空格问题。
  2. 首先限定字段名称 - 特别是如果您只填充某些字段值。
  3. 单引号 .
  4. 包裹 字符串

所以:

SqlString = "INSERT INTO Table3 (Name,Numbers) VALUES (name,099)";

会是这样的:

SqlString = "INSERT INTO [Table3] ([Name],[Numbers]) VALUES ('name',099)";

不过,您的 table / 字段名称不需要方括号。