MFC工控项目实例三十五读取数据库数据

点击按钮打开文件夹中的数据文件生成曲线

相关代码

cpp 复制代码
void CSEAL_PRESSUREDlg::OnTesReport() 
{
 	
CFileDialog dlgOpen(TRUE/*TRUE打开,FALSE保存*/,
        0,
        0,
        OFN_NOCHANGEDIR|OFN_FILEMUSTEXIST,
        "All Files(mdb.*)|*.*||",//文件过滤器
        NULL);
  
CString  mdb_1, mdb_2;
    dlgOpen.m_ofn.lpstrInitialDir =theApp.m_DataPath;
    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());
			  }
			   m_ctrlPlot_1.RemoveAllChannels();
               m_ctrlPlot_1.AddChannel();
                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_ctrlPlot_1.GetChannel(0).AddXY(X/10, Y);	
		m_pRecordset->MoveNext();	//将记录集指针移动到下一条记
				}
	}	
}
相关推荐
LcVong2 分钟前
MySQL 5.2/5.7 开启Binlog日志详细步骤(附验证+查看+恢复)
数据库·mysql·adb
FL4m3Y4n20 分钟前
MySQL缓存策略
数据库·mysql·缓存
wsx_iot22 分钟前
TDengine学习
数据库·学习·tdengine
不吃香菜的小趴菜41 分钟前
mysql数据库打包与导入
数据库·mysql
野犬寒鸦44 分钟前
Redis复习记录day1
服务器·开发语言·数据库·redis·缓存
njidf1 小时前
实战:用Python开发一个简单的区块链
jvm·数据库·python
小菜鸡桃蛋狗1 小时前
C++——类和对象(下)
开发语言·c++
Rick19931 小时前
慢SQL优化
数据库·python·sql
IvorySQL1 小时前
速抢!HOW 2026 早鸟票最后 1 天,解锁开源数据库盛会全亮点
数据库·postgresql·开源
crescent_悦1 小时前
C++:Highest Price in Supply Chain
开发语言·c++