实验写vc-mysql作业-老师用的vb讲希望老师会同意我的作品

昨天 晚上 实现了 一些功能 

登录 注销 修改密码 注册 自动提示账号是否已经被占用 密码填写等定时器 显示时间  修改程序ico 等等


后面准备增加的功能  (只写出在此基础上的  不拓展)

1 在输入验证的时候 正确显示一个图片沟 错误的时候显示一个错误的X  

2 实现托盘功能 

3  在选择皮肤的时候判断下皮肤是否纯在  (最好实现 在程序运行过程中 修改皮肤  但是还不知道怎么实现 )

4 在 右边 实现这样一个功能:  就算是一个函数吧 大概形式 bool XXX(Cstring,int)  或许还有一两个按钮

1 这个窗口在主窗口的 右边  和 主窗口 并行执行

2 最基础的功能 调用它就在旁边显示 多少秒 在窗口中显示 Cstring 类容  并且直接 把 内容 放在 复制的缓冲区内 在外面直接ctrl+c 便可以复制出来了...

3 新用户提示(或者其他提示)  记录当前数据库中某表的最大id是多少 然后 过一段时间查看 最大id是多少 如果比他大 则 在 窗体中显示.......

(如果是自己注册 那么 最好 注册前记录下 你注册的 username 或者 什么的 然后 如果 大一点的 id 的 username 是你注册的 ..就不显示了)

4 好了 吃饭了 ....

以上内容只是 想想 得先 完成 作业    上次 是 做数据库 (什么 需求分析啊  E-R图 啊  数据流图 啊 做的是BBS 非常简单  这次 这个 得  继承 上回的 啊..呵呵)

资源下载地址  http://download.csdn.net/detail/ydc__/4872087  没有去除 一些文件 所以 有点庞大 使用的是vc2012 

需要的数据库mysql  数据库内容为 数据库 ydc  表 user 表内数据 id username password 其中id自增


当时 做的笔记有


界面的美化 ::  vc驿站 界面库编程免费视频   http://www.cctry.com/forum-81-1.html


Mysql 数据库的操作

当时百度了一下百度到的资源是http://blog.csdn.net/nuptboyzhb/article/details/8043091

/*
Ydc__ 2012 
*/
#pragma once

#define PI 3.1415

#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mysql.h>
#include <iostream>
#pragma comment(lib,"libmysql.lib")//连接MysQL需要的库
using namespace std;

class MySql
{
public:
	MySql(){}
	~MySql()
	{
		//这里就不做多的处理 了
		if(result!=NULL) mysql_free_result(result);//释放结果资源
		mysql_close(&myCont);//断开连接
	}
	bool InitMember()
	{
		user = "root";//账号//数据库的
		pswd = "1234";	//密码//数据库的 
		host = "localhost";//或则"127.0.0.1"
		table ="ydc";      //数据库
		port = 3306;       //端口
		mysql_init(&myCont);
		if(!mysql_real_connect(&myCont,host.c_str(),user.c_str(),pswd.c_str(),table.c_str(),port,NULL,0))
		{
			//连接数据库失败
			return false;
		}
		mysql_query(&myCont, "SET NAMES GBK"); //设置编码格式,否则在cmd下无法显示中文


		//meiyou错误
		return true;
	}
	bool Query()
	{
		res=mysql_query(&myCont,sql.c_str());//查询

		if(!res)
		{
			result=mysql_store_result(&myCont);//保存查询到的数据到result
		}
		else
		{
			//查询失败
			return false;
		}
		/* 使用结果示例 见下面注释的main里面*/

		return true;
	}
	bool Query(CString sql)
	{
		res=mysql_query(&myCont,sql);//查询

		if(!res)
		{
			result=mysql_store_result(&myCont);//保存查询到的数据到result
		}
		else
		{
			//查询失败
			return false;
		}
		/* 使用结果示例 见下面注释的main里面*/

		return true;
	}
	/*bool Delete();*/
	bool update(CString sql)
	{
		if(mysql_real_query(&myCont,(char*)(LPCTSTR)sql,(UINT)sql.GetLength())!=0){ 
			AfxMessageBox("修改失败"); 
			return false;
		}
		return true;
	}
	bool Insert(CString sql)
	{
		if(mysql_real_query(&myCont,(char*)(LPCTSTR)sql,(UINT)sql.GetLength())!=0){ 
			return true;
		}
		else
		{
			return false;
		}

	}
	//bool SetSql(string sql)
	//{
	//	this->sql = sql;
	//	if (sql.size() < 15)
	///	{
	//		return false;//估计 小雨15 一般不是正确的语句
	//	}
	//	return true;
	//}
private:
	 string user;
	 string pswd;
	 string host;    
	 string table;
	 unsigned int port;
	 MYSQL myCont;
	 
public://经常使用的设置成public
	 int res;//数据条数
	 string sql;//sql语句
	 MYSQL_RES *result;
	 char column[32][32];//保存的 是 列明子  一般 自己 知道 获取 方法 见下面函数内
	 MYSQL_FIELD *fd;
	 MYSQL_ROW sql_row;
};

/*

system("pause");//暂停
system("cls");//清屏
system("color a");//改变字体颜色输入

*/

使用举例 下面是登录的时候使用的代码


CString sql = "SELECT *  FROM `user` WHERE `username` LIKE '"+username+"' AND `password` LIKE '"+password+"'";
Y.Query(sql);
if(Y.result)
{
	int j=mysql_num_fields(Y.result);
	while(Y.sql_row=mysql_fetch_row(Y.result))//获取具体的数据
	{

		user_id = atoi(Y.sql_row[0]);
		//这里其实 只会有一条数据
		for(int i=0;i<j;i++)
		{
			isOnline = true;
			//printf("%s\n",Y.sql_row[i]);
			//test += Y.sql_row[i];
		}
		//printf("\n");
	}
	//AfxMessageBox(test);
}else
{
	isOnline = false;
}


按钮 button
登录 login
注销 logout
注册 register
首页 home
Group Box
选择 choose
皮肤 skin
修改 Change 
New password, please enter it twice
信息 information


获取Text的值
GetDlgItemText(IDC_EDIT_Login_user,username);


AfxMessageBox(CheckUsername);


((CEdit*)GetDlgItem(IDC_STATIC_Username))->SetWindowText("账号不可用 请重新输入");


在小对话框里面 要实现初始化的时候 设置按钮等的 初始化信息 得添加初始化消息函数


SYSTEMTIME st = {0};
GetLocalTime(&st);//获得当前本地时间
附SYSTEMTIME结构常用成员说明
st.wYear;年
st.wMonth;月
st.wDay;日
st.wHour;时
st.wMinute;分
st.wSecond;秒
st.wDayOfWeek;星期几




设置窗口的Caption属性
SetWindowText(Caption);




定时器 WM_TIMER 消息
关闭 定时器 对话框要 重写 关闭函数 释放函数



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值