原本想让一个窗口弹出更新资料的窗口,更新完成之后,再更新先前有该资料的listctrl的内容。现在
我一运行就出现,终止,重试,忽略的问题,连忽略可以正常显示,点终止退出。在release下就没有问题。BOOL CProp1::OnInitDialog()
{
CPropertyPage::OnInitDialog();
ListAddData(FALSE); //调用函数,让listctrl从数据库中取出数据
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}void CProp1::ListAddData(BOOL bUpdate)
{
if (!bUpdate) //在初始化时取数据。
{
m_imagelist.Create(16,16,TRUE,2,2);
m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_list.SetImageList(&m_imagelist,LVSIL_SMALL);
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_list.SetBkColor(RGB(247,247,255));
m_list.SetTextColor(RGB(0,0,255));
m_list.SetTextBkColor(RGB(247,247,255));
m_list.InsertColumn(0, "", LVCFMT_LEFT, 85);
m_list.InsertColumn(1, "收 盘", LVCFMT_LEFT, 85);
m_list.InsertColumn(2, "涨 跌", LVCFMT_LEFT, 85); CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
_CommandPtr pCmd(__uuidof(Command)); pConn->ConnectionString = _bstr_t(ConnStr) ;
pConn->Open("","","",adConnectUnspecified);
pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn));
pCmd->CommandText="SELECT TOP 1 * FROM OverseasStockMarket ORDER BY StockMarketDate DESC ";
pRst=pCmd->Execute(NULL,NULL,adCmdText); while(!pRst->rsEOF)
{ CString str("");
m_list.InsertItem(0,"");
m_list.SetItemText(0,0,"Nasdaq");
m_list.SetItemText(0,1,(_bstr_t)pRst->GetCollect("NasdaqClosing"));
m_list.SetItemText(0,2,(_bstr_t)pRst->GetCollect("NasdaqUpsdowns"));
pRst->MoveNext(); }
pConn->Close();
pConn.Release();
CoUninitialize();
}
else //在修改时取数据。。
{
m_list.DeleteAllItems();
while (m_list.DeleteColumn(0))
{
};
//上面两句清除原来的listCtrl
m_imagelist.Create(16,16,TRUE,2,2);
m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_list.SetImageList(&m_imagelist,LVSIL_SMALL);
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_list.SetBkColor(RGB(247,247,255));
m_list.SetTextColor(RGB(0,0,255));
m_list.SetTextBkColor(RGB(247,247,255));
m_list.InsertColumn(0, "", LVCFMT_LEFT, 85);
m_list.InsertColumn(1, "收 盘", LVCFMT_LEFT, 85);
m_list.InsertColumn(2, "涨 跌", LVCFMT_LEFT, 85); CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
_CommandPtr pCmd(__uuidof(Command)); pConn->ConnectionString = _bstr_t(ConnStr) ;
pConn->Open("","","",adConnectUnspecified);
pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn));
pCmd->CommandText="SELECT TOP 1 * FROM OverseasStockMarket ORDER BY StockMarketDate DESC ";
pRst=pCmd->Execute(NULL,NULL,adCmdText); while(!pRst->rsEOF)
{ CString str("");
m_list.InsertItem(0,"");
m_list.SetItemText(0,0,"Nasdaq");
m_list.SetItemText(0,1,(_bstr_t)pRst->GetCollect("NasdaqClosing"));
m_list.SetItemText(0,2,(_bstr_t)pRst->GetCollect("NasdaqUpsdowns"));
pRst->MoveNext(); }
pConn->Close();
pConn.Release();
CoUninitialize();
}
}void CProp1::OnUpdate()
{
// TODO: Add your control notification handler code here
COverEdit dlg; //Initialize;
CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
_CommandPtr pCmd(__uuidof(Command)); pConn->ConnectionString = _bstr_t(ConnStr) ; pConn->Open("","","",adConnectUnspecified); pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn));
pCmd->CommandText="SELECT TOP 1 * FROM OverseasStockMarket ORDER BY StockMarketDate DESC ";
pRst=pCmd->Execute(NULL,NULL,adCmdText); while(!pRst->rsEOF)
{
CString str;
str.Format("%0.2f",(double)pRst->GetCollect("NasdaqClosing"));
dlg.m_NasdaqClosing = atof(str) ;
str.Format("%0.2f",(double)pRst->GetCollect("NasdaqUpsdowns")*100);
dlg.m_NasdaqUpsdowns = atof(str);
str.Format("%0.2f",(double)pRst->GetCollect("NikkeiClosing"));
dlg.m_NikkeiClosing = atof(str);
str.Format("%0.2f",(double)pRst->GetCollect("NikkeiUpsdowns")*100);
dlg.m_NikkeiUpsdowns = atof(str);
str.Format("%0.2f",(double)pRst->GetCollect("TWSEClosing"));
dlg.m_TWSEClosing = atof(str);
str.Format("%0.2f",(double)pRst->GetCollect("TWSEUpsdowns")*100);
dlg.m_TWSEUpsdowns = atof(str);
str.Format("%0.2f",(double)pRst->GetCollect("DowJonesClosing"));
dlg.m_DowJonesClosing = atof(str);
str.Format("%0.2f",(double)pRst->GetCollect("DowJonesUpsdowns")*100);
dlg.m_DowJonesUpsdowns = atof(str);
str.Format("%0.2f",(double)pRst->GetCollect("HangSengClosing"));
dlg.m_HangSengClosing = atof(str);
str.Format("%0.2f",(double)pRst->GetCollect("HangSengUpsdowns")*100);
dlg.m_HangSengUpsdowns = atof(str);
pRst->MoveNext();
}
if (IDOK==dlg.DoModal())
{
UpdateData(TRUE); CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
_CommandPtr pCmd(__uuidof(Command)); pConn->ConnectionString = _bstr_t(ConnStr) ;
pConn->Open("","","",adConnectUnspecified);
pRst->Open("SELECT TOP 1 * FROM OverseasStockMarket ORDER BY StockMarketDate DESC",_variant_t((IDispatch*)pConn),
adOpenDynamic,adLockOptimistic,adCmdText);
//pRst->AddNew(); // you can pRst->PutCollect
//pRst->PutCollect(_variant_t("RecordManID"),_variant_t((short)15)); pRst->Fields->GetItem(_variant_t("NasdaqClosing"))->PutValue(_variant_t(dlg.m_NasdaqClosing));
pRst->Fields->GetItem(_variant_t("NasdaqUpsdowns"))->PutValue(_variant_t(dlg.m_NasdaqUpsdowns/100));
pRst->Update(); pRst->Close();
pConn->Close();
pConn.Release();
CoUninitialize();
}
//上为修改数据,再放到数据库中
ListAddData(TRUE);//再调用函数重新在listCtrl中放入数据库更新过后的数据
}
我一运行就出现,终止,重试,忽略的问题,连忽略可以正常显示,点终止退出。在release下就没有问题。BOOL CProp1::OnInitDialog()
{
CPropertyPage::OnInitDialog();
ListAddData(FALSE); //调用函数,让listctrl从数据库中取出数据
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}void CProp1::ListAddData(BOOL bUpdate)
{
if (!bUpdate) //在初始化时取数据。
{
m_imagelist.Create(16,16,TRUE,2,2);
m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_list.SetImageList(&m_imagelist,LVSIL_SMALL);
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_list.SetBkColor(RGB(247,247,255));
m_list.SetTextColor(RGB(0,0,255));
m_list.SetTextBkColor(RGB(247,247,255));
m_list.InsertColumn(0, "", LVCFMT_LEFT, 85);
m_list.InsertColumn(1, "收 盘", LVCFMT_LEFT, 85);
m_list.InsertColumn(2, "涨 跌", LVCFMT_LEFT, 85); CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
_CommandPtr pCmd(__uuidof(Command)); pConn->ConnectionString = _bstr_t(ConnStr) ;
pConn->Open("","","",adConnectUnspecified);
pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn));
pCmd->CommandText="SELECT TOP 1 * FROM OverseasStockMarket ORDER BY StockMarketDate DESC ";
pRst=pCmd->Execute(NULL,NULL,adCmdText); while(!pRst->rsEOF)
{ CString str("");
m_list.InsertItem(0,"");
m_list.SetItemText(0,0,"Nasdaq");
m_list.SetItemText(0,1,(_bstr_t)pRst->GetCollect("NasdaqClosing"));
m_list.SetItemText(0,2,(_bstr_t)pRst->GetCollect("NasdaqUpsdowns"));
pRst->MoveNext(); }
pConn->Close();
pConn.Release();
CoUninitialize();
}
else //在修改时取数据。。
{
m_list.DeleteAllItems();
while (m_list.DeleteColumn(0))
{
};
//上面两句清除原来的listCtrl
m_imagelist.Create(16,16,TRUE,2,2);
m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_list.SetImageList(&m_imagelist,LVSIL_SMALL);
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_list.SetBkColor(RGB(247,247,255));
m_list.SetTextColor(RGB(0,0,255));
m_list.SetTextBkColor(RGB(247,247,255));
m_list.InsertColumn(0, "", LVCFMT_LEFT, 85);
m_list.InsertColumn(1, "收 盘", LVCFMT_LEFT, 85);
m_list.InsertColumn(2, "涨 跌", LVCFMT_LEFT, 85); CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
_CommandPtr pCmd(__uuidof(Command)); pConn->ConnectionString = _bstr_t(ConnStr) ;
pConn->Open("","","",adConnectUnspecified);
pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn));
pCmd->CommandText="SELECT TOP 1 * FROM OverseasStockMarket ORDER BY StockMarketDate DESC ";
pRst=pCmd->Execute(NULL,NULL,adCmdText); while(!pRst->rsEOF)
{ CString str("");
m_list.InsertItem(0,"");
m_list.SetItemText(0,0,"Nasdaq");
m_list.SetItemText(0,1,(_bstr_t)pRst->GetCollect("NasdaqClosing"));
m_list.SetItemText(0,2,(_bstr_t)pRst->GetCollect("NasdaqUpsdowns"));
pRst->MoveNext(); }
pConn->Close();
pConn.Release();
CoUninitialize();
}
}void CProp1::OnUpdate()
{
// TODO: Add your control notification handler code here
COverEdit dlg; //Initialize;
CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
_CommandPtr pCmd(__uuidof(Command)); pConn->ConnectionString = _bstr_t(ConnStr) ; pConn->Open("","","",adConnectUnspecified); pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn));
pCmd->CommandText="SELECT TOP 1 * FROM OverseasStockMarket ORDER BY StockMarketDate DESC ";
pRst=pCmd->Execute(NULL,NULL,adCmdText); while(!pRst->rsEOF)
{
CString str;
str.Format("%0.2f",(double)pRst->GetCollect("NasdaqClosing"));
dlg.m_NasdaqClosing = atof(str) ;
str.Format("%0.2f",(double)pRst->GetCollect("NasdaqUpsdowns")*100);
dlg.m_NasdaqUpsdowns = atof(str);
str.Format("%0.2f",(double)pRst->GetCollect("NikkeiClosing"));
dlg.m_NikkeiClosing = atof(str);
str.Format("%0.2f",(double)pRst->GetCollect("NikkeiUpsdowns")*100);
dlg.m_NikkeiUpsdowns = atof(str);
str.Format("%0.2f",(double)pRst->GetCollect("TWSEClosing"));
dlg.m_TWSEClosing = atof(str);
str.Format("%0.2f",(double)pRst->GetCollect("TWSEUpsdowns")*100);
dlg.m_TWSEUpsdowns = atof(str);
str.Format("%0.2f",(double)pRst->GetCollect("DowJonesClosing"));
dlg.m_DowJonesClosing = atof(str);
str.Format("%0.2f",(double)pRst->GetCollect("DowJonesUpsdowns")*100);
dlg.m_DowJonesUpsdowns = atof(str);
str.Format("%0.2f",(double)pRst->GetCollect("HangSengClosing"));
dlg.m_HangSengClosing = atof(str);
str.Format("%0.2f",(double)pRst->GetCollect("HangSengUpsdowns")*100);
dlg.m_HangSengUpsdowns = atof(str);
pRst->MoveNext();
}
if (IDOK==dlg.DoModal())
{
UpdateData(TRUE); CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
_CommandPtr pCmd(__uuidof(Command)); pConn->ConnectionString = _bstr_t(ConnStr) ;
pConn->Open("","","",adConnectUnspecified);
pRst->Open("SELECT TOP 1 * FROM OverseasStockMarket ORDER BY StockMarketDate DESC",_variant_t((IDispatch*)pConn),
adOpenDynamic,adLockOptimistic,adCmdText);
//pRst->AddNew(); // you can pRst->PutCollect
//pRst->PutCollect(_variant_t("RecordManID"),_variant_t((short)15)); pRst->Fields->GetItem(_variant_t("NasdaqClosing"))->PutValue(_variant_t(dlg.m_NasdaqClosing));
pRst->Fields->GetItem(_variant_t("NasdaqUpsdowns"))->PutValue(_variant_t(dlg.m_NasdaqUpsdowns/100));
pRst->Update(); pRst->Close();
pConn->Close();
pConn.Release();
CoUninitialize();
}
//上为修改数据,再放到数据库中
ListAddData(TRUE);//再调用函数重新在listCtrl中放入数据库更新过后的数据
}
解决方案 »
- 关于校园宽带上网助手的原理,为什么用普通的方法连接不上,要使用上网助手呢?
- 在图片上写字,输出BMP文件,总是黑白的.
- VC如何使用SHA1加密呀?
- 怎么样在MFC extension dll中使用纯资源dll
- 如何在线程函数内部,使鼠标处于等待状态?
- 电视上说 我们的经济又增长了 16% ,但是,我看到的却是赚钱的公司越来越少,人民生活水平在下降
- 如何制作XP风格的窗口CSliderCtr控件?
- 有关万象网管软件
- 怎么给分阿
- 关于Delphi调用COM失败的问题。
- 多文档中如何用语句调用菜单中的Save 命令?
- 哪位达人知道,createdir()函数的具体用法,为什么我在msdn上查不到这个函数的文档啊
http://www.cczq.com/jacky/webmanage.exe
建议在Debug下将问题解决,和debug/release无关
当listctrl的项再被删除后再重新增加listctrl的项时为什么会出错,怎么样才能免出错啊。
这个问题我想是比较普通的存在的,就是不知道怎么去解决。
m_imagelist.create,
前面已经调用过了,能这样用吗?
我以前是玩DELPHI的。
如果调用多次就应把:
m_imagelist.Create(16,16,TRUE,2,2);
m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_list.SetImageList(&m_imagelist,LVSIL_SMALL);
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_list.SetBkColor(RGB(247,247,255));
m_list.SetTextColor(RGB(0,0,255));
m_list.SetTextBkColor(RGB(247,247,255));
m_list.InsertColumn(0, "", LVCFMT_LEFT, 85);
m_list.InsertColumn(1, "收 盘", LVCFMT_LEFT, 85);
m_list.InsertColumn(2, "涨 跌", LVCFMT_LEFT, 85);OnInitDialog() 中去.
现在对了。结贴~~~~~