VC++通过选择组合框条件自动查询数据库,并将查询结果显示到编辑框

VC++通过选择组合框条件自动查询数据库,并将查询结果显示到编辑框

问题描述:

问题如标题,目前编写代码如下,但选择组合框条件后没反应
代码如下,诚盼大家指教,我是编程爱好者,为自己做需,谢谢!:
CShiYinShaSet rs;
UpdateData();
CString strSQL;
//ShiYinSha:数据库中表名;
//PiCi:表中列名;
//Si_Pi:组合框ID变量,CString Si_Pi
strSQL.Format("select * from ShiYinSha where PiCi = '%s'", Si_Pi);
if (!rs.Open(AFX_DB_USE_DEFAULT_TYPE, strSQL))
{
AfxMessageBox("打开数据库失败!");
return;
}

while (!rs.IsEOF())
{
    //Si_Si为编辑框变量,CString Si_Si;
    //m_Si为Acces数据库中Si列的变量
    //Si_Si.AddString((LPCTSTR)(CString)rs.m_Si);当使用此行代码时AddString出错
    Si_Si += (LPCTSTR)(CString)rs.m_Si;
    rs.MoveNext();
}
rs.Close();

谢谢您的回复,可否给出纠正的代码

Si_Pi 在这里通过数据库查询自动显示数据库字段到组合框中的,使用时可通过下拉框选择
void CXianWeiFormView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();

CShiYinShaSet rs;
if (!rs.Open(AFX_DB_USE_DEFAULT_TYPE, "select * from ShiYinSha"))
{
    MessageBox("打开数据库失败!", "数据库错误", MB_OK);
    //return FALSE;
}

while (!rs.IsEOF())
{
    m_ctrSiPi.AddString((LPCTSTR)(CString)rs.m_PiCi);

    rs.MoveNext();
}
rs.Close();
}

没看到你 Si_Pi在哪里赋值的
如果用的是DDX,那么你需要调用UpdateData