IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MFC根据获取的date time picker值来查询mysql -> 正文阅读

[大数据]MFC根据获取的date time picker值来查询mysql

? ? 一、使用datetimepicker获取时间

?? ?CTime tm;
?? ?m_Ktime.GetTime(tm);
?? ?CString strTime = tm.Format("%Y-%m-%d");

二、连接数据库

//连接数据库
	MYSQL mysqlConOper;
	mysql_init(&mysqlConOper);

	const char user[] = "root";
	const char pswd[] = "123456";
	const char host[] = "localhost";
	const char table[] = "admins";
	unsigned int port = 3306;
	mysql_real_connect(&mysqlConOper, host, user, pswd, table, port, NULL, 0);
	mysql_query(&mysqlConOper, "SET USER GBK");
	mysql_query(&mysqlConOper, "SET NAMES GBK"); //设置编码格式,否则在cmd下无法显示中文 

三、根据 strTime 用 mysql_query 来查询数据库

    MYSQL_RES* res;     //声明数据查询结果
	MYSQL_ROW row;      //取每行结果的对象

	char sele[1000];
	sprintf_s(sele, "select * from dailysettle where timestamp(left(dateAtime,10)) =  \'%s\'", strTime);
	mysql_query(&mysqlConOper, sele);  //向数据库发送查询语句


	res = mysql_store_result(&mysqlConOper);    //得到查询结果
	if (NULL == res) { return; }     //如果为空则返回
	CString str;
	int i = 0;
	while (row = mysql_fetch_row(res))  //逐行去除查询结果并操作
	{
		//数据操作,这里可以直接以row[i]的形式取出数据项,但是均为char*行
		CString myreaddata(row[0]);

		//for (int i = 0; i < 2; i++) {
		str.Format("%s", row[0]);
		m_dayAna.InsertItem(i, str);

		str.Format("%s", row[1]);
		m_dayAna.SetItemText(i, 1, str);

		str.Format("%s", row[2]);
		m_dayAna.SetItemText(i, 2, str);

		str.Format("%s", row[3]);
		m_dayAna.SetItemText(i, 3, str);

		i++;

	}

	mysql_free_result(res);  //释放结果集所占用的内存
	mysql_close(&mysqlConOper);  //关闭数据库
}

四、给date time picker添加修改日期的响应消息函数

添加代码如下:?

void CAlculate::OnDtnDatetimechangeDatetimepicker1(NMHDR* pNMHDR, LRESULT* pResult)   //在控件的时间发生改变时响应消息函数
{
	LPNMDATETIMECHANGE pDTChange = reinterpret_cast<LPNMDATETIMECHANGE>(pNMHDR);
	// TODO: 在此添加控件通知处理程序代码
	m_dayAna.DeleteAllItems();    //清空列表

	//清空当日销售收入的数据
	m_revenue.SetSel(0, -1);
	m_revenue.Clear();       //清空数据
	m_revenue.GetFocus();    //再次获得焦点

	*pResult = 0;
}

添加上述代码后,就不出现下列情况:

比如选了3月20日的数据,再选择3月18日就会同时出现18号和20号的数据。

?效果图如下:

?

五、注释

1、select * from dailysettle where timestamp(left(dateAtime,10)) =? "2022-03-20";

left(s1, s2):截取dateAtime长度为10的字段

2、使用的是用listcontrol来显示查询数据库所得的数据。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 20:57:41  更:2022-03-21 20:59:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:26:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码