……
m_pSet->Edit(); //使数据库能被更新
m_pSet->sName="abc"; //sName是字段名
m_pSet->Update(); //写入数据库
m_pSet->Edit(); //封锁数据库不被写操作
……请问,它为什么不是只改当前一条记录,而是把从当前记录的所在记录都改掉了?
我应该怎样写才才能只改当前一条记录?
m_pSet->Edit(); //使数据库能被更新
m_pSet->sName="abc"; //sName是字段名
m_pSet->Update(); //写入数据库
m_pSet->Edit(); //封锁数据库不被写操作
……请问,它为什么不是只改当前一条记录,而是把从当前记录的所在记录都改掉了?
我应该怎样写才才能只改当前一条记录?
是不是该用这个函数啊
为什么要这一句
如果程序没有问题每次只能更新一个记录。
http://www.webdiy.org/srg/下载页:
http://www.webdiy.org/srg/other/soft.htm找软件:SRG v1.0兄弟给分把!我好久没回答问题了,手上的分也不多了!哈哈哈
void CDatabaseView::OnDblClickMsflexgrid()
{
long lCurCol=m_FGrid.GetColSel();
long lCurRow=m_FGrid.GetRowSel();
CDialogSetup dlg;
if(dlg.DoModal()==IDOK)
{
m_FGrid.SetTextMatrix(lCurRow,lCurCol,dlg.m_sEditValue); //return a string to Controler m_pSet->MoveFirst(); //save data to Database
m_pSet->Move((m_nEditWeek-1)*7);
for(int i=1;i<lCurCol;i++)
{
if(!m_pSet->IsEOF())
m_pSet->MoveNext();
else
{
m_pSet->AddNew();
}
}
if(lCurRow==1)
{
m_pSet->Edit();
m_pSet->m_Ammorning=dlg.m_sEditValue;
m_pSet->Update();
m_pSet->Edit();
// MessageBox("Row=1");
}
else if(lCurRow==2)
{
m_pSet->Edit();
m_pSet->m_Amnoon=dlg.m_sEditValue;
m_pSet->Update();
m_pSet->Edit();
}
else if(lCurRow==3)
{
m_pSet->Edit();
m_pSet->m_Pmnoon =dlg.m_sEditValue;
m_pSet->Update();
m_pSet->Edit();
// MessageBox("Row=3");
}
else if(lCurRow==4)
{
m_pSet->Edit();
m_pSet->m_Pmnight =dlg.m_sEditValue;
m_pSet->Update();
m_pSet->Edit();
// MessageBox("Row=4");
}
else
{
;
}
}
}
1) if(!m_pSet->IsEOF())
m_pSet->MoveNext();
else
{
m_pSet->AddNew();
}
这里其实数据库里一条记录也添加不进,因为你没有Update。2)m_pSet->Edit(); //封锁数据库不被写操作
没必要。另外,检查一下你的数据库设计,有没有重复记录。
以后再考虑解决这个问题
这样老钻下去不是办法啊老兄