我嘗試搜索查詢以返回存儲在數據庫中的用戶名。但是,到目前爲止,我無法得到答案。所以在這裏,我正在尋求你的幫助。LIKE運算符的查詢字符串生成器
我有一個MFC對話框,其中我有一個編輯控件來輸入用戶名和搜索按鈕,用於查詢數據庫的數據。我必須只檢索那些與dit控件中的字符串匹配的用戶名。
比方說,有兩個用戶名爲Sagar
和Sachin
的記錄。因此,如果我只在用戶名編輯控件中輸入"s"
,則搜索按鈕事件應檢索Sagar
以及sachin
的數據。
幸運的是,我有訪問數據庫中運行良好的查詢,但不知道如何在MFC應用程序中構建和格式化查詢。查詢,我可以在Access數據庫運行是:
請幫我建立和格式化對話框的MFC應用程序中的查詢上單擊搜索按鈕。
下面是代碼:
list<CUserProperties> CUserOperations::SearchUserDetails(CString sUserName, CString sLastName)
{
list<CUserProperties> listUserProps;
m_sFunctionName = L"SearchUserDetails";
try
{
if (sUserName.Trim().IsEmpty() && sLastName.Trim().IsEmpty())
{
m_sQuery.Format(_T("SELECT USER_ID, USERNAME, ROLE, FIRSTNAME, LASTNAME, PASSWORD, CONFIRMPASSWORD FROM USERINFO"));
}
else if (sUserName.Trim().IsEmpty() && (!(sLastName.Trim().IsEmpty())))
{
m_sQuery.Format(_T("SELECT USER_ID, USERNAME, ROLE, FIRSTNAME, LASTNAME, PASSWORD, CONFIRMPASSWORD FROM USERINFO WHERE LASTNAME = '%s'"), sLastName);
}
else if (sLastName.Trim().IsEmpty() && (!(sUserName.Trim().IsEmpty())))
{
m_sQuery.Format(_T("SELECT USER_ID, USERNAME, ROLE, FIRSTNAME, LASTNAME, PASSWORD, CONFIRMPASSWORD FROM USERINFO WHERE USERNAME = '%s'"), sUserName);
}
else
{
m_sQuery.Format(_T("SELECT USER_ID, USERNAME, ROLE, FIRSTNAME, LASTNAME, PASSWORD, CONFIRMPASSWORD FROM USERINFO WHERE USERNAME = '%s' AND LASTNAME = '%s'"), sUserName, sLastName);
}
listUserProps = m_dbOperations.SelectUserDataFromDB(m_sFunctionName, m_sQuery);
}
catch (...)
{
AfxMessageBox(m_sFunctionName + L": Exception occured");
}
return listUserProps;
}
請出示你寫的代碼並不起作用。 –
對於你在'username'字段中輸入's'的例子,查詢應該是'select * from USERINFO',其中用戶名LIKE的'%''不是嗎?它是標準的SQL。 –
感謝您的回覆。我已經添加了函數,通過它格式化查詢,並且一旦格式化和構建,我將它傳遞給另一個函數,在那裏執行查詢。 – Sagar