VS2013为基于对话框的项目添加ODBC数据

如果不勾选 “基于对话框”,那么可以通过左侧的“数据库支持”,选择ODBC数据源。如果勾选“基于对话框”,左侧的“数据库支持”

将变灰,无法设置。

VS2013为基于对话框的项目添加ODBC数据_第1张图片

VS2013为基于对话框的项目添加ODBC数据_第2张图片

所以我们不用这里的向导完成,我们先生成一个对话框项目。

点开----“项目”----“类向导”

VS2013为基于对话框的项目添加ODBC数据_第3张图片

点开右上方“添加类”里面的“MFC OBDC使用者”,出现下面的对话框

VS2013为基于对话框的项目添加ODBC数据_第4张图片

即可设置数据源,选择“动态集”,如果选择“快照”后期无法像数据库添加数据。

在数据源内选择好你的数据源,还有数据源的文件,比如Access文件xxx.mdb,选择好需要的数据表,就会生成和数据表同名的类文件。如下图:

VS2013为基于对话框的项目添加ODBC数据_第5张图片

“noto.cpp”里面如果出现

VS2013为基于对话框的项目添加ODBC数据_第6张图片

直接注释掉即可。

 

下面我们通过加载一个List Control控件测试一下这个数据库,首先添加一个控件,并设置View属性“Report”。VS2013为基于对话框的项目添加ODBC数据_第7张图片

然后为控件添加一个公共变量名:m_list_db

在对话框的初始化代码处添加一下代码,这样对话框初始化后列表就有项目名称了。

VS2013为基于对话框的项目添加ODBC数据_第8张图片

VS2013为基于对话框的项目添加ODBC数据_第9张图片

下面就是读取数据库,添加前面生成的头文件

VS2013为基于对话框的项目添加ODBC数据_第10张图片

Cnote m_pSet;
    CDBVariant varvalue;
    m_pSet.Open();
    m_pSet.MoveFirst();
    int i = 0;
    TCHAR buf[20];
    while (!m_pSet.IsEOF())
    {
        m_pSet.GetFieldValue(short(0), varvalue);
        _stprintf_s(buf, _T("%d"), varvalue.m_lVal);
        m_list_db.InsertItem(i, buf);

        m_pSet.GetFieldValue(1, varvalue);
        m_list_db.SetItemText(i, 1, varvalue.m_pstringW->GetBuffer(1));

        m_pSet.GetFieldValue(2, varvalue);
        _stprintf_s(buf, _T("%d"), varvalue.m_lVal);
        m_list_db.SetItemText(i, 2, buf);

        m_pSet.GetFieldValue(3, varvalue);
        _stprintf_s(buf, _T("%f"), varvalue.m_fltVal);
        m_list_db.SetItemText(i, 3, buf);

        m_pSet.GetFieldValue(4, varvalue);
        _stprintf_s(buf, _T("%f"), varvalue.m_fltVal);
        m_list_db.SetItemText(i, 4, buf);

        m_pSet.GetFieldValue(5, varvalue);
        _stprintf_s(buf, _T("%f"), varvalue.m_fltVal);
        m_list_db.SetItemText(i, 5, buf);
        m_pSet.MoveNext();
        i++;
    }
    m_pSet.Close();

在对话框的初始化代码处继续添加上一段代码

VS2013为基于对话框的项目添加ODBC数据_第11张图片

运行结果如下:

VS2013为基于对话框的项目添加ODBC数据_第12张图片

你可能感兴趣的:(vc++)