iPlotX控件用数据库数据生成曲线图实例(源码下载)

本项目实例基于前期 《用定时器在数据库表内自动生成数据实例》实现。https://blog.csdn.net/weixin_42350092/article/details/129849114?spm=1001.2014.3001.5502
在资源对话框上添加一个读取数据按钮控件,一个iPlotX控件添加变量为m_iPlotX,运行程序打开数据库可实现将数据库中数据读取出来生成曲线图。
在这里插入图片描述
在这里插入图片描述

读取数据按钮生成的响应函数代码如下:

void CDataAdoDlg::OnButton2() 
{      
		 m_iPlotX.RemoveAllChannels();
         m_iPlotX.AddChannel();		
		 UpdateWindow();
	// TODO: Add your control notification handler code here
CFileDialog dlgOpen(TRUE/*TRUE打开,FALSE保存*/,
        0,
        0,
        OFN_NOCHANGEDIR|OFN_FILEMUSTEXIST,
        "All Files(mdb.*)|*.*||",//文件过滤器
        NULL);
   char pBuf[250];
   GetCurrentDirectory(250,pBuf);
CString CStr1=pBuf;
CString CStr2=CStr1+"\\data\\";
CString  mdb_1, mdb_2;
    dlgOpen.m_ofn.lpstrInitialDir = CStr2;
    if(IDOK == dlgOpen.DoModal())
	{
             mdb_1=dlgOpen.GetPathName();
             mdb_2=dlgOpen.GetFileTitle();    
			 UpdateData(true); 
 _variant_t RecordsAffected; 
    //链接数据库
       try
	   {
		//创建连接对象实例
		m_pConnection.CreateInstance("ADODB.Connection");	
	CString strConnect="DRIVER={Microsoft Access Driver (*.mdb)};\
			uid=;pwd=;DBQ="+mdb_1;	
		m_pConnection->Open((_bstr_t)strConnect,"","",adModeUnknown);  
	   }	
          catch(...)
		  {
		MessageBox("连接数据库失败");
		return;
		  }    
            try
			{
       m_pRecordset.CreateInstance("ADODB.Recordset"); //为Recordset对象创建实例
       _bstr_t strCmd = "SELECT * FROM  "+mdb_2;
       m_pRecordset = m_pConnection->Execute(strCmd, &RecordsAffected, adCmdText);
			}
              catch(_com_error &e)
			  {
       AfxMessageBox(e.Description());
			  }
                while(!m_pRecordset->adoEOF)
				{	
	 	 double X=(double)atof((char*)(_bstr_t)m_pRecordset->GetCollect("X值"));
		 double Y=(double)atof((char*)(_bstr_t)m_pRecordset->GetCollect("Y值"));
	 	m_iPlotX.GetChannel(0).AddXY(X, Y);	
		m_pRecordset->MoveNext();	//将记录集指针移动到下一条记
				}
	}
}

源码下载
https://blog.csdn.net/weixin_42350092/article/details/129942476?spm=1001.2014.3001.5502

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兵哥工控

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值