C++ 当我按下MFC中的按钮(CButton)时,不会实时更改值。I';我使用sql server

C++ 当我按下MFC中的按钮(CButton)时,不会实时更改值。I';我使用sql server,c++,mfc,oledb,listcontrol,C++,Mfc,Oledb,Listcontrol,我正在使用sql server 2014和visual studio 2015社区 我正在从事MFCDB程序(单文档和OLE DB),但遇到了很大的麻烦 问题是当我更改MFC按钮使用的DB值时,该值不会实时更改 当我按下编辑器中的刷新按钮时,更改值 如何实时更改值 下面是代码和图片 更新按钮代码 void CTouhouJGSView::OnBnClickedButtonUpdate() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. CCommand&

我正在使用sql server 2014和visual studio 2015社区 我正在从事MFCDB程序(单文档和OLE DB),但遇到了很大的麻烦

问题是当我更改MFC按钮使用的DB值时,该值不会实时更改
当我按下编辑器中的刷新按钮时,更改值
如何实时更改值

下面是代码和图片

更新按钮代码

void CTouhouJGSView::OnBnClickedButtonUpdate()
{
    // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
    CCommand<CDynamicAccessor> cmd;

    CString strQuery = _T("UPDATE dbo.TouhouTable SET 능력 = 'ewrer' WHERE id = 1");

    cmd.Open(m_pSet->m_session, strQuery, NULL);
    cmd.Close();
    AddAllRecord();
}
和程序图片

编辑:m_pSet的定义

#pragma once
#include "afxcmn.h"
#include "afxwin.h"

class CTouhouJGSSet;

class CTouhouJGSView : public COleDBRecordView
{
    protected: // serialization에서만 만들어집니다.
    CTouhouJGSView();
    DECLARE_DYNCREATE(CTouhouJGSView)

public:
#ifdef AFX_DESIGN_TIME
    enum{ IDD = IDD_TOUHOUJGS_FORM };
#endif
    CTouhouJGSSet* m_pSet; //here

// 특성입니다.
public:
    CTouhouJGSDoc* GetDocument() const;
编辑2:CTouhouJGSSet更改部件类

//class CTouhouJGSSet : public CTable<CAccessor<CTouhouJGSSetAccessor> >
class CTouhouJGSSet : public CCommand<CAccessor<CTouhouJGSSetAccessor> >
{

......

HRESULT OpenRowset(DBPROPSET *pPropSet = NULL)
{
    //HRESULT hr = Open(m_session, L"dbo.TouhouTable", pPropSet);
    CString strSQL = _T("select * from dbo.TouhouTable");
    HRESULT hr = Open(m_session, strSQL, pPropSet);
编辑3:我说刷新按钮
找到
m\u pSet
充满数据的方法。您必须在
AddAllRecord()之前刷新或重新创建它

void CTouhouJGSView::OnBnClickedButtonUpdate()
{
//待办事项:여기에 컨트롤 알림 처리기 코드를 추가합니다.
命令cmd;
CString strQuery=\u T(“更新dbo.TouhouTable集능력 = 'ewrer'其中id=1”);
cmd.Open(m_pSet->m_session,strQuery,NULL);
cmd.Close();

cmd.OpenRowset(m_pSet);//找到
m_pSet
填充数据的方法。在
AddAllRecord();

void CTouhouJGSView::OnBnClickedButtonUpdate()
{
//待办事项:여기에 컨트롤 알림 처리기 코드를 추가합니다.
命令cmd;
CString strQuery=\u T(“更新dbo.TouhouTable集능력 = 'ewrer'其中id=1”);
cmd.Open(m_pSet->m_session,strQuery,NULL);
cmd.Close();

cmd.OpenRowset(m_pSet);//显示
m_pSet
对象的定义,如MS文档所述,
m_pSet
对象似乎没有刷新。显示其初始化和填充DB数据的方式。重新创建对象并填充数据应该会有所帮助。使用按钮(更新?)更改值,在按下刷新按钮之前,您不会看到该值已更改?刷新按钮在哪里?我上载了刷新按钮图像,当我第一次调试时,列表控件不会向我显示已更改的值,但第二个调试列表控件会将已更改的值显示为Meth。这是Microsoft Sql Server管理网格。它不会在每次更改值时都刷新ged。一切似乎都正常。显示
m_pSet
对象的定义
m_pSet
对象似乎没有按照MS文档所述刷新。显示其初始化方式并填充DB数据。重新创建对象并填充数据应该会有所帮助。您可以使用按钮(更新?)更改值,在按下刷新按钮之前,您不会看到该值已更改?刷新按钮在哪里?我上载了刷新按钮图像,当我第一次调试时,列表控件不会向我显示已更改的值,但第二个调试列表控件会将已更改的值显示为Meth。这是Microsoft Sql Server管理网格。它不会在每次更改值时都刷新杰德,一切似乎都很好。
//class CTouhouJGSSet : public CTable<CAccessor<CTouhouJGSSetAccessor> >
class CTouhouJGSSet : public CCommand<CAccessor<CTouhouJGSSetAccessor> >
{

......

HRESULT OpenRowset(DBPROPSET *pPropSet = NULL)
{
    //HRESULT hr = Open(m_session, L"dbo.TouhouTable", pPropSet);
    CString strSQL = _T("select * from dbo.TouhouTable");
    HRESULT hr = Open(m_session, strSQL, pPropSet);
void CTouhouJGSView::OnInitialUpdate()
{
,,,,,
    COleDBRecordView::OnInitialUpdate();
    AddColumn();       //additional function
    AddAllRecord();    //additional function
}
void CTouhouJGSView::OnBnClickedButtonUpdate()
{
    // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
    CCommand<CDynamicAccessor> cmd;
    CString strQuery = _T("UPDATE dbo.TouhouTable SET 능력 = 'ewrer' WHERE id = 1");
    cmd.Open(m_pSet->m_session, strQuery, NULL);
    cmd.Close();

    cmd.OpenRowset(m_pSet); //<-- you can try to close it first, if its already opened
    AddAllRecord();
}