VC下一对话框,有一编辑框,对应CString变量m_str,输入格式例为$4321$,两个$分别为开始标识和结束标识,中间位数不固定。又有一表demo,要求用上面数字字符中的每一位与表中dosage字段中对应行的原值相加来更新,例如,原表中
dosage dosage
1 用$4321$ 5
2 相加后为 5
3 5
4 5采用ADO访问数据库,代码添加在“修改”按钮的处理函数中。我的思路如下:
m_pRecordset->MoveFirst();//指针移到表中第一条记录
while( .............)//以字符串结束标志$为循环停止条件
{
........ //对变量m_str进行操作,依次取得一位字符
m_pRecordset->PutCollect("dosage", ........);//将这一位字符变为整形与原值相加
m_pRecordset->Update();
m_pRecordset->MoveNext();//指针移到下一条记录
}
我是个新手,哪位高手能帮我按上面框架给出具体代码,也可以按自己的思路写,最好有注释,谢谢!
dosage dosage
1 用$4321$ 5
2 相加后为 5
3 5
4 5采用ADO访问数据库,代码添加在“修改”按钮的处理函数中。我的思路如下:
m_pRecordset->MoveFirst();//指针移到表中第一条记录
while( .............)//以字符串结束标志$为循环停止条件
{
........ //对变量m_str进行操作,依次取得一位字符
m_pRecordset->PutCollect("dosage", ........);//将这一位字符变为整形与原值相加
m_pRecordset->Update();
m_pRecordset->MoveNext();//指针移到下一条记录
}
我是个新手,哪位高手能帮我按上面框架给出具体代码,也可以按自己的思路写,最好有注释,谢谢!
{
while(!m_pRecordset->adoEOF)
{ .........//对字符串的处理自己写 var=m_pRecordset->GetCollect("dosage");
if(var.vt!=VT_NULL)
strdosage=(LPCSTR)_bstr_t(var);
j=atof(strdosage)+j;
m_pRecordset->PutCollect("dosage",(long)j);
m_pRecordset->Update();
m_pRecordset->MoveNext();
}
AfxMessageBox("修改成功");
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}