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