关于VC++ 连接数据库 做登陆界面问题
我已做好数据库,password储存了用户数据和密码,我做了个登陆界面,验证密码,具体我该如何写代码查询密码并且验证。我写了一个,但是每次都验证不通过!回答好的追加分数v...
我已做好数据库,password储存了用户数据和密码,我做了个登陆界面,验证密码,具体我该如何写代码查询密码并且验证。我写了一个,但是每次都验证不通过!回答好的追加分数
void CStu_login::OnOK()
{
CDatabase db;
db.Open(_T("DB_xuanke"),FALSE,FALSE,_T("ODBC;"),FALSE);
CRecordset rs(&db); // 构造记录集
UpdateData(TRUE);
CString sqlstr;
sqlstr.Format("select * from password where 学号=%ld",m_user);
CRecordset rs1(&db);
rs1.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr);
if(rs1.IsEOF())
{
MessageBox("学号输入有误,无此学生!!!");
return;
}
sqlstr.Format("select * from password where 学号=%ld and 密码='%s'",m_user,m_password);
rs.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr);
if(rs.GetRecordCount()==0)
{
MessageBox("密码输入错误!!!");
}
else
{
CString temp;
temp.Format("update password set flag=%d where 学号=%ld",1,m_user);
db.ExecuteSQL(temp);
db.Close();
OnOK();
}
}
数据源已建立,我这个语句是否适用于MFC ODBC 展开
void CStu_login::OnOK()
{
CDatabase db;
db.Open(_T("DB_xuanke"),FALSE,FALSE,_T("ODBC;"),FALSE);
CRecordset rs(&db); // 构造记录集
UpdateData(TRUE);
CString sqlstr;
sqlstr.Format("select * from password where 学号=%ld",m_user);
CRecordset rs1(&db);
rs1.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr);
if(rs1.IsEOF())
{
MessageBox("学号输入有误,无此学生!!!");
return;
}
sqlstr.Format("select * from password where 学号=%ld and 密码='%s'",m_user,m_password);
rs.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr);
if(rs.GetRecordCount()==0)
{
MessageBox("密码输入错误!!!");
}
else
{
CString temp;
temp.Format("update password set flag=%d where 学号=%ld",1,m_user);
db.ExecuteSQL(temp);
db.Close();
OnOK();
}
}
数据源已建立,我这个语句是否适用于MFC ODBC 展开
4个回答
展开全部
ODBC连接数据库模式应该首先要建立一个数据源的。以下注释引用教科书的内容:
编写ODBC程序主要有几个步骤:
为ODBC分配环境句柄 -- 其实就是上面我说的建立一个数据源
分配一个链接句柄
连接到数据库
用SQL命令分配一个语句句柄
执行该命令返回结果集
段开同数据源的连接
e.g.: 一个简单的建立数据源的语句
char cpConfig[MAX_PATH] = {'\0'};
if(!SQLConfigDataSource(NULL,ODBC_ADD_SYS_DSN,"Microsoft Access Driver(*.mdb)\0".cpConfig))
AfxMessageBox("Add ODBC source failed.");
不推荐使用ODBC方式,在MSDN里面提倡使用的是ADO类库的智能指针方式。
编写ODBC程序主要有几个步骤:
为ODBC分配环境句柄 -- 其实就是上面我说的建立一个数据源
分配一个链接句柄
连接到数据库
用SQL命令分配一个语句句柄
执行该命令返回结果集
段开同数据源的连接
e.g.: 一个简单的建立数据源的语句
char cpConfig[MAX_PATH] = {'\0'};
if(!SQLConfigDataSource(NULL,ODBC_ADD_SYS_DSN,"Microsoft Access Driver(*.mdb)\0".cpConfig))
AfxMessageBox("Add ODBC source failed.");
不推荐使用ODBC方式,在MSDN里面提倡使用的是ADO类库的智能指针方式。
展开全部
查询语句出错吧。
select 条目 from 数据表 where 条件
select 条目 from 数据表 where 条件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
也许没有初始化Ole 发给我程序 我调试下就好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
具体弹出哪个消息框?再把数据表和你的输入发来。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询