我尝试搜索查询以返回存储在数据库中的用户名。但是,到目前为止我无法得到答案。所以在这里,我正在寻求你的帮助。
我有一个MFC对话框,其中我有一个编辑控件来输入用户名和一个搜索按钮,用于查询数据库中的数据。我必须只检索那些匹配dit控件中的字符串的用户名。
假设有两条记录,其中包含用户名Sagar
和Sachin
。因此,如果我只在用户名编辑控件中输入"s"
,则搜索按钮事件应检索Sagar
和sachin
的数据。
幸运的是,我的查询在访问数据库中运行良好,但不知道如何在MFC应用程序中构建和格式化查询。我可以在access数据库中运行的查询是:
select * from USERINFO where Username LIKE [a-z]&"*"
请点击搜索按钮,帮助我在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;
}
答案 0 :(得分:0)
据我所知,你可能需要这样的东西:
CString username;
// Your code: obtain typed username into username
CString querystring;
querystring.Format(_T("select * from USERINFO where Username LIKE '%s%%'"), username);
// perform your query using querystring here