none
MFC中怎么把数据库里的一列添加到combobox中? RRS feed

  • 问题

  • 那位大神可以帮忙啊?很急的。我想把actlist那张表里的name一列添加到combobox中,数据库已经用ado连好,下面是我的代码,调试的时候点开combobox控件里面却是空的,应该怎么改?越详细越好。 谢谢!

    void CKNTTDlg::OnCbnSelchangeCombo1()
    {
    	m_combo1.DeleteString(0);//
    	CADORecordset* pRs = new CADORecordset(CKNTTApp::g_pDb);
    	CString strTemp;
    	if(pRs->Open((LPCTSTR)"SELECT name FROM actlist"))
    	{
    		while(!pRs->IsEof())
    		{
    			
    			_variant_t var;
                            var = pRs->GetCollect("name",strTemp);
    			CString strTmp = (LPCSTR)(_bstr_t(var.bstrVal));
    			m_combo1.AddString(strTmp);
    			pRs->MoveNext();
    			}
    		pRs->Close();
    	}
    	else
    		AfxMessageBox(_T("记录集创建失败"));
    	delete pRs;	
    }



    2016年4月28日 10:35

全部回复

  • 调试的时候,CString strTmp 有值吗?

    或是改成

    m_combo1->AddString(strTmp);

    看这样行不


    专注于.NET MIS开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年4月28日 12:57
  • 你好,

    首先我们要检查确定和数据库已经链接好了,然后查看string变量里面,有没有值存在?这些你都确定吗?

    这边有个使用MFC和ADO的一个demo,你可以参考它去改写你的程序,http://www.codeproject.com/Articles/2742/ADO-MFC-Wrapper-classes

    在VC++里面是有方法去获取,这个string变量的,这边有个demo,如何获取string类型的变量https://msdn.microsoft.com/en-us/library/ms675957(v=vs.85).aspx

    希望我的回复,对你有用,有什么问题请随时联系我们。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place. Click HERE to participate the survey.

    2016年4月29日 5:49
    版主
  • 请在Debug调试模式下看看strTmp对象是否有数据?
    另外m_combo1对象关联的窗口对象有效吗?ASSERT(NULL != m_combo1.GetSafeHwnd());试一下这个断言是否正确无错误?

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    2016年4月29日 15:31
    版主