连接数据库后,要通过MFC得到数据库中的值,参考了很多网上例程,终于读取到数据库的值了。
1、MFC模块关于连接读取数据库有三个类,CDatebase,CRecordSet类,CRecordView类,本次使用了前两种类
2、
void Cvs_mfc02Dlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
char ch5[20],ch6[20];
CString str1,str2;
GetDlgItemText(IDC_EDIT1,ch5,20); //读取编辑框内容
GetDlgItemText(IDC_EDIT2,ch6,20);
str1=ch5;
str1+=ch6; //将输入的账户密码合成到一处字符串上
try //try catch 语句
{
CDatabase db;
CRecordset rs(&db);
BOOL flag=0; //flag标志用来判定输入的账号密码与数据库中的账号密码是否相等
if(db.Open(_T("qq_data")))
{
rs.Open(CRecordset::forwardOnly,_T("SELECT * FROM table_qq"));//通过CRecordset类,记录整个表中数据
CString varValue;
short nFields=rs.GetODBCFieldCount(); //计算表中每行字段个数
while(!rs.IsEOF())
{
for(short index=0;index<nFields;index++)
{
rs.GetFieldValue(index,varValue);
//读取表格中每个单元数值,由于建立的表格中都是字符,所以定义的varValue类型是CString,否则应使用CDBVariant类,不过我暂时没搞清楚怎么使用这个类
if(index==0)
{
str2="";
}
else str2+=varValue; //将表格中存储的账号密码合成到一处字符串中
}
if(str1==str2)
{
MessageBox("登陆成功!");
flag=TRUE; //flag标志用来判定输入的账号密码与数据库中的账号密码是否相等
break;
}
rs.MoveNext(); //移动到下一行
}
if(flag) //如果登陆成功
{
ShowWindow(SW_HIDE);//先隐藏登陆界面
Cvs_mfc02de dlg; //调用显示聊天界面
dlg.DoModal();
DestroyWindow(); //推出程序
}
else
{
MessageBox("密码错误");
}
rs.Close();
db.Close();//关闭数据库
}
}
catch(CDBException* e)
{
AfxMessageBox(e->m_strError);
e->Delete();
}
}
3、上面是在连接mysql数据库基础上,可以实现读取数据库内存储值。
1、MFC模块关于连接读取数据库有三个类,CDatebase,CRecordSet类,CRecordView类,本次使用了前两种类
2、
void Cvs_mfc02Dlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
char ch5[20],ch6[20];
CString str1,str2;
GetDlgItemText(IDC_EDIT1,ch5,20); //读取编辑框内容
GetDlgItemText(IDC_EDIT2,ch6,20);
str1=ch5;
str1+=ch6; //将输入的账户密码合成到一处字符串上
try //try catch 语句
{
CDatabase db;
CRecordset rs(&db);
BOOL flag=0; //flag标志用来判定输入的账号密码与数据库中的账号密码是否相等
if(db.Open(_T("qq_data")))
{
rs.Open(CRecordset::forwardOnly,_T("SELECT * FROM table_qq"));//通过CRecordset类,记录整个表中数据
CString varValue;
short nFields=rs.GetODBCFieldCount(); //计算表中每行字段个数
while(!rs.IsEOF())
{
for(short index=0;index<nFields;index++)
{
rs.GetFieldValue(index,varValue);
//读取表格中每个单元数值,由于建立的表格中都是字符,所以定义的varValue类型是CString,否则应使用CDBVariant类,不过我暂时没搞清楚怎么使用这个类
if(index==0)
{
str2="";
}
else str2+=varValue; //将表格中存储的账号密码合成到一处字符串中
}
if(str1==str2)
{
MessageBox("登陆成功!");
flag=TRUE; //flag标志用来判定输入的账号密码与数据库中的账号密码是否相等
break;
}
rs.MoveNext(); //移动到下一行
}
if(flag) //如果登陆成功
{
ShowWindow(SW_HIDE);//先隐藏登陆界面
Cvs_mfc02de dlg; //调用显示聊天界面
dlg.DoModal();
DestroyWindow(); //推出程序
}
else
{
MessageBox("密码错误");
}
rs.Close();
db.Close();//关闭数据库
}
}
catch(CDBException* e)
{
AfxMessageBox(e->m_strError);
e->Delete();
}
}
3、上面是在连接mysql数据库基础上,可以实现读取数据库内存储值。