c++ mysql函数返回值,程序运行后,为什么mysql_real_query函数返回值总是为0值?

ca56232b3bbedf9a539d07f37fffb99a.gif

3144d8b7615c79d9f638db40d5689d26.gif

a218af6549b45ee526caf607ebff1358.gif

0f8df0e29816ae721419de940fb833d1.gif

程序运行后,为什么mysql_real_query函数返回值总是为0值?

头文件

#if !defined(AFX_FRM_LOGIN_H__EA29EF2B_5CDB_41BF_A82A_8C0272E4ADD2__INCLUDED_)

#define AFX_FRM_LOGIN_H__EA29EF2B_5CDB_41BF_A82A_8C0272E4ADD2__INCLUDED_

#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000

// frm_Login.h : header file

//

/

// Cfrm_Login dialog

class Cfrm_Login : public CDialog

{

// Construction

public:

Cfrm_Login(CWnd* pParent = NULL);   // standard constructor

//***************************

MYSQL *pConn; //数据库连接句柄

MYSQL_RES *result;

MYSQL_ROW row;

//***************************

//定义全局变量

//***************************

CString strgbUserName;

//***************************

// Dialog Data

//{{AFX_DATA(Cfrm_Login)

enum { IDD = frm_Login };

CComboBox    m_strUserName;

CString        m_strPassWord;

//}}AFX_DATA

// Overrides

// ClassWizard generated virtual function overrides

//{{AFX_VIRTUAL(Cfrm_Login)

protected:

virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

//}}AFX_VIRTUAL

// Implementation

protected:

// Generated message map functions

//{{AFX_MSG(Cfrm_Login)

afx_msg void OncmdConfirm();

afx_msg void OncmdCancel();

virtual BOOL OnInitDialog();

afx_msg void OnDestroy();

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

};

//{{AFX_INSERT_LOCATION}}

// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_FRM_LOGIN_H__EA29EF2B_5CDB_41BF_A82A_8C0272E4ADD2__INCLUDED_)

程序文件

// frm_Login.cpp : implementation file

//

#include "stdafx.h"

#include "HVAC SMART.h"

#include "frm_Login.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

/

// Cfrm_Login dialog

Cfrm_Login::Cfrm_Login(CWnd* pParent /*=NULL*/)

: CDialog(Cfrm_Login::IDD, pParent)

{

//{{AFX_DATA_INIT(Cfrm_Login)

m_strPassWord = _T("");

//}}AFX_DATA_INIT

}

void Cfrm_Login::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

//{{AFX_DATA_MAP(Cfrm_Login)

DDX_Control(pDX, cboUserName, m_strUserName);

DDX_Text(pDX, txtPassWord, m_strPassWord);

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP(Cfrm_Login, CDialog)

//{{AFX_MSG_MAP(Cfrm_Login)

ON_BN_CLICKED(cmdConfirm, OncmdConfirm)

ON_BN_CLICKED(cmdCancel, OncmdCancel)

ON_WM_DESTROY()

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/

// Cfrm_Login message handlers

void Cfrm_Login::OncmdConfirm()

{

// TODO: Add your control notification handler code here

//***********************

UpdateData(true);//从界面上获取控件数据给相应的变量

if (m_strUserName.GetCurSel()==-1)//如果没有选择将会返回-1

{

MessageBox("请先选择用户名!","系统提示",MB_ICONWARNING|MB_OK);

GetDlgItem(cboUserName)->SetFocus();

return;

}

CString strTemp,strUserId,strSQL;

m_strUserName.GetLBText(m_strUserName.GetCurSel(),strTemp);//把cboUserName中指定的内容赋值给strTemp

strUserId=strTemp.Left(strTemp.Find(' '));//从左边取发现空格为止的字符串

strSQL.Format("select * from uUser where fuserid=\'%s\' and fpassword=\'%s\'",strUserId,m_strPassWord);

if(mysql_real_query(pConn,(char*)(LPCTSTR)strSQL,(UINT)strSQL.GetLength())!=0)//此处不管密码正确与否都只执行下面else的程序代码段,不知为什么??

{

MessageBox("用户密码不正确,请重新输入!","系统提示",MB_ICONWARNING|MB_OK);

GetDlgItem(txtPassWord)->SetFocus();

return;

}

else

{

strgbUserName=strTemp.Right(strTemp.Find(' ')-1);//取得cboUserName中的用户名

//mysql_free_result(result);//释放结果集

CDialog::OnOK();//关闭对话框

}

//***********************

}

void Cfrm_Login::OncmdCancel()

{

// TODO: Add your control notification handler code here

//***********************

CDialog::OnCancel();

//***********************

}

BOOL Cfrm_Login::OnInitDialog()

{

CDialog::OnInitDialog();

// TODO: Add extra initialization here

//初始化数据库

//************************************

pConn=mysql_init (NULL);

if(!mysql_real_connect(pConn,strDBHost,strDBUserName,strDBPassWord,strDBName,intDBPort,NULL,0))//连接数据库

{

MessageBox("数据库连接失败!","系统提示",MB_ICONWARNING|MB_OK);

return FALSE;

}

mysql_options(pConn,MYSQL_SET_CHARSET_NAME,"gb2312");//防止乱码

//************************************

//为cboUserName控件加载初始数据

//************************************

if(mysql_query(pConn,"select * from uUser")!=0)//发出一个以空字符结束的查询串

{

MessageBox("查询失败!","系统提示",MB_ICONWARNING|MB_OK);

return false;

}

else

{

if(!(result=mysql_store_result(pConn)))//一次性传送结果

{

return false;

}

else

{

for(int i=0;i

{

row = mysql_fetch_row(result);//从结果集中获取下一行,取得当前记录行

char temp[32];

strcpy(temp,row[0]);

strcat(temp," ");

m_strUserName.AddString(strcat(temp,row[1]));//取得当前记录列

}

}

mysql_free_result(result);//释放结果集使用的内存

}

//************************************

return TRUE;  // return TRUE unless you set the focus to a control

// EXCEPTION: OCX Property Pages should return FALSE

}

void Cfrm_Login::OnDestroy()

{

CDialog::OnDestroy();

// TODO: Add your message handler code here

//关闭数据库连接

//*************************************

mysql_close(pConn);

//*************************************

}

刚学VC6.0,有很多不懂的地方,请哪位大虾帮我指点一下,谢谢!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值