我用MFC做的一个小软件,公司要加密,设置了操作员界面。可是我做“更改密码”功能时,代码一句一句从头到尾地运行,数据库记录、列表控件记录显示却怎么也没有更改,像是没有运行代码一个样。设置断点,捕获错误,没有错误提示。
数据表的字段绝对正确,这个我已验证N+1篇了,再在这栽,泪奔中,不活了我~~~~~~~~木要拦着~~~~~~另:记录增加、删除功能正常。该数据库别的数据表操作也正常。因涉及加密功能,曾听前任组长指点该方法获取数据记录,木懂~~~~~~求指点 代码如下:        UpdateData(); int selrow = m_List.GetSelectionMark();
if (selrow != -1)
{
//判断操作员信息是否为空
if (m_UserName.IsEmpty() || m_UserPass.IsEmpty() || m_ConfirmPass.IsEmpty())
{
MessageBox("操作员信息不能为空!","提示");
m_EditUserName.SetFocus();
return;
}
//验证密码
if (m_UserPass != m_ConfirmPass)
{
MessageBox("两次密码不一致!","提示");
return;
} //对象代表与基于参数化查询或存储过程的Command对象相关联的参数或自变量
_ParameterPtr pUser, pPassword;         
m_AdoConn.OnInitADOConn();                         //初始化数据库

// 创建参数,创建和返回一个Parameter对象,该对象包含指定的属性:名称、类型、方向、大小和值
pUser = m_AdoConn.m_pCommand->CreateParameter("UserParam", adVarWChar, adParamInput, 100, (_bstr_t)m_UserName);
pPassword = m_AdoConn.m_pCommand->CreateParameter("PWParam", adVarWChar, adParamInput, 100, (_bstr_t)m_UserPass);

m_AdoConn.m_pCon->CursorLocation = adUseServer;                 //设置游标类型
m_AdoConn.m_pCommand->ActiveConnection = m_AdoConn.m_pCon;      //设置ADO Command对象的链接数据

m_AdoConn.m_pCommand->Parameters->Append(pUser); //插入参数
m_AdoConn.m_pCommand->Parameters->Append(pPassword); //插入参数

CString sql;
sql.Format("select * from UserSet where [UerName] = '%s'", m_UserName);
m_AdoConn.m_pCommand->CommandText = (_bstr_t)sql;     //设置ADO Command 属性
_RecordsetPtr pRecord = NULL;     //定义ADO Recordset对象
pRecord = m_AdoConn.m_pCommand->Execute(0, NULL, adCmdText); //执行SQL语句 /////////////////////// 删除参数///////////////////////// m_AdoConn.m_pCommand->Parameters->Delete("UserParam");
m_AdoConn.m_pCommand->Parameters->Delete("PWParam");

if(!pRecord->adoEOF)
{
pRecord->Close();

CString ListUser = m_List.GetItemText(selrow, 0); //获取列表中操作员姓名
CString Updatesql;
Updatesql.Format("update UserSet set [Password] = '%s' where [UerName] = '%s'", m_UserPass, ListUser);
m_AdoConn.m_pCommand->CommandText = (_bstr_t)sql;
try
{
// m_AdoConn.m_pCommand->ActiveConnection = m_AdoConn.m_pCon;      //设置ADO Command对象的链接数据
// m_AdoConn.m_pCommand->CommandText = (_bstr_t)sql;
pRecord = m_AdoConn.m_pCommand->Execute(0, NULL, adCmdText); //执行SQL语句
// m_AdoConn.m_pCon->Execute((_bstr_t)sql,NULL,-1);
MessageBox("修改成功!", "提示");
LoadOperatorInfo();
}
catch(_com_error e)
{
MessageBox("操作失败!", "提示");
}
}
else
{
pRecord->Close();

CString ListUser = m_List.GetItemText(selrow, 0); //获取列表中操作员姓名
CString Updatesql;
Updatesql.Format("update UserSet set [UerName] = '%s' where [UerName] = '%s'", m_UserName, ListUser);
//m_AdoConn.m_pCommand->CommandText = (_bstr_t)sql;
try
{
// m_AdoConn.m_pCommand->ActiveConnection = m_AdoConn.m_pCon;      //设置ADO Command对象的链接数据
// m_AdoConn.m_pCommand->CommandText = (_bstr_t)sql;
//pRecord = m_AdoConn.m_pCommand->Execute(0, NULL, adCmdText); //执行SQL语句
m_AdoConn.m_pCon->Execute((_bstr_t)sql, NULL, -1);
MessageBox("修改成功!", "提示"); LoadOperatorInfo();
}
catch(_com_error e)
{
MessageBox("操作失败!", "提示");
}
}
// pRecord->Close();
}
else
{
MessageBox("请选择需要修改的操作员信息!", "提示");
}