把access数据库注册为odbc数据源,在vc中访问,界面如图,例如,我现在有10条记录,增加第11条,
问题现象:
1 点击“添加”,会在列表控件第0行中显示新增的记录,但是再次点击“添加”增加第12条,此时显示的依然是第11条的内容
2 先点击“显示记录”,再点击“添加”按钮添加第11项,只能显示第10项的记录
void CDatabase1View::OnButtonAdd()
{
// TODO: Add your control notification handler code here
m_recordlist.DeleteAllItems( );
CAddDlg dlg;
CString str1,str2,str3;
BOOL flag;
long nownum;
if(dlg.DoModal()==IDOK)
{
m_pSet->AddNew();
m_pSet->m_column1=atol(dlg.m_num);
m_pSet->m_column2=dlg.m_name;
m_pSet->m_column3=dlg.m_chinese;
m_pSet->m_column4=dlg.m_english;
m_pSet->m_column5=dlg.m_math;
m_pSet->m_column6=dlg.m_sport;
m_pSet->Update();
m_pSet->MoveLast();
//m_pSet->MoveNext();
m_pSet->m_totalnum=m_pSet->GetRecordCount();
str1.Format("%d",m_pSet->m_totalnum);
str1+="个记录数目";
MessageBox(str1);
CRecordsetStatus rStatus;
m_pSet->GetStatus(rStatus);
flag=rStatus.m_lCurrentRecord;
nownum=rStatus.m_lCurrentRecord;
if (flag)
{
MessageBox("总数确定!");
if (nownum==-2)
{
MessageBox("当前记录不确定!");
}
else if(nownum==-1)
MessageBox("当前记录太靠前");
else
{
str2.Format("%ld",nownum);
str2+="是当前记录锁定记录";
MessageBox(str2);
}
}
else
{
//str2.Format("%ld",nownum);
//str2+="是现在所在记录数";
//MessageBox(str2,"最后一行不确定");
MessageBox("总数不确定!");
if (nownum==-2)
{
MessageBox("当前记录不确定!");
}
else if(nownum==-1)
MessageBox("当前记录太靠前");
else
{
str2.Format("%ld",nownum);
str2+="是当前记录锁定记录";
MessageBox(str2);
}
}
str3.Format("%d",m_pSet->m_column1);
m_recordlist.InsertItem(0,str3);
m_recordlist.SetItemText(0,1,m_pSet->m_column2);
m_recordlist.SetItemText(0,2,m_pSet->m_column3);
m_recordlist.SetItemText(0,3,m_pSet->m_column4);
m_recordlist.SetItemText(0,4,m_pSet->m_column5);
m_recordlist.SetItemText(0,5,m_pSet->m_column6);
}
}void CDatabase1View::OnButtonShow()
{
// TODO: Add your control notification handler code here
int i=0;
CString str,str1;
m_pSet->MoveFirst();
m_recordlist.DeleteAllItems( ); while(!m_pSet->IsEOF())
{
str.Format("%d",m_pSet->m_column1);
m_recordlist.InsertItem(i,str);
//str.Format("%d",m_pSet->m_column2);
m_recordlist.SetItemText(i,1,m_pSet->m_column2);
//str.Format("%d",m_pSet->m_column3);
m_recordlist.SetItemText(i,2,m_pSet->m_column3);
//str.Format("%d",m_pSet->m_column4);
m_recordlist.SetItemText(i,3,m_pSet->m_column4);
//str.Format("%d",m_pSet->m_column5);
m_recordlist.SetItemText(i,4,m_pSet->m_column5);
//str.Format("%d",m_pSet->m_column6);
m_recordlist.SetItemText(i,5,m_pSet->m_column6);
m_pSet->MoveNext();
i++;
} m_pSet->m_totalnum=m_pSet->GetRecordCount();
str1.Format("%d",m_pSet->m_totalnum);
str1+="个记录数目";
MessageBox(str1,"记录总数");
}
请高手帮我看一下,新手啊!
问题现象:
1 点击“添加”,会在列表控件第0行中显示新增的记录,但是再次点击“添加”增加第12条,此时显示的依然是第11条的内容
2 先点击“显示记录”,再点击“添加”按钮添加第11项,只能显示第10项的记录
void CDatabase1View::OnButtonAdd()
{
// TODO: Add your control notification handler code here
m_recordlist.DeleteAllItems( );
CAddDlg dlg;
CString str1,str2,str3;
BOOL flag;
long nownum;
if(dlg.DoModal()==IDOK)
{
m_pSet->AddNew();
m_pSet->m_column1=atol(dlg.m_num);
m_pSet->m_column2=dlg.m_name;
m_pSet->m_column3=dlg.m_chinese;
m_pSet->m_column4=dlg.m_english;
m_pSet->m_column5=dlg.m_math;
m_pSet->m_column6=dlg.m_sport;
m_pSet->Update();
m_pSet->MoveLast();
//m_pSet->MoveNext();
m_pSet->m_totalnum=m_pSet->GetRecordCount();
str1.Format("%d",m_pSet->m_totalnum);
str1+="个记录数目";
MessageBox(str1);
CRecordsetStatus rStatus;
m_pSet->GetStatus(rStatus);
flag=rStatus.m_lCurrentRecord;
nownum=rStatus.m_lCurrentRecord;
if (flag)
{
MessageBox("总数确定!");
if (nownum==-2)
{
MessageBox("当前记录不确定!");
}
else if(nownum==-1)
MessageBox("当前记录太靠前");
else
{
str2.Format("%ld",nownum);
str2+="是当前记录锁定记录";
MessageBox(str2);
}
}
else
{
//str2.Format("%ld",nownum);
//str2+="是现在所在记录数";
//MessageBox(str2,"最后一行不确定");
MessageBox("总数不确定!");
if (nownum==-2)
{
MessageBox("当前记录不确定!");
}
else if(nownum==-1)
MessageBox("当前记录太靠前");
else
{
str2.Format("%ld",nownum);
str2+="是当前记录锁定记录";
MessageBox(str2);
}
}
str3.Format("%d",m_pSet->m_column1);
m_recordlist.InsertItem(0,str3);
m_recordlist.SetItemText(0,1,m_pSet->m_column2);
m_recordlist.SetItemText(0,2,m_pSet->m_column3);
m_recordlist.SetItemText(0,3,m_pSet->m_column4);
m_recordlist.SetItemText(0,4,m_pSet->m_column5);
m_recordlist.SetItemText(0,5,m_pSet->m_column6);
}
}void CDatabase1View::OnButtonShow()
{
// TODO: Add your control notification handler code here
int i=0;
CString str,str1;
m_pSet->MoveFirst();
m_recordlist.DeleteAllItems( ); while(!m_pSet->IsEOF())
{
str.Format("%d",m_pSet->m_column1);
m_recordlist.InsertItem(i,str);
//str.Format("%d",m_pSet->m_column2);
m_recordlist.SetItemText(i,1,m_pSet->m_column2);
//str.Format("%d",m_pSet->m_column3);
m_recordlist.SetItemText(i,2,m_pSet->m_column3);
//str.Format("%d",m_pSet->m_column4);
m_recordlist.SetItemText(i,3,m_pSet->m_column4);
//str.Format("%d",m_pSet->m_column5);
m_recordlist.SetItemText(i,4,m_pSet->m_column5);
//str.Format("%d",m_pSet->m_column6);
m_recordlist.SetItemText(i,5,m_pSet->m_column6);
m_pSet->MoveNext();
i++;
} m_pSet->m_totalnum=m_pSet->GetRecordCount();
str1.Format("%d",m_pSet->m_totalnum);
str1+="个记录数目";
MessageBox(str1,"记录总数");
}
请高手帮我看一下,新手啊!
解决方案 »
- 按下当前对话框确定键后对当前对话框中的Tab控件中的Page页面上的checkbox控件进行UpdateData(TRUE)绑定
- debug assertion failed
- 新手问题。CListCtrl不会用,无法添加数据……高分求解!
- 问2个问题对我来说都是高难道的一:怎么处理BMP图片成ICO的效果呢 二:静态文本没有透明 帮我看看代码
- 有没有判断端口是否被占用的API?
- 对不起,我没有分了)象WORD中的打印页面设置对话框怎样调用,并且怎样实现调整页面间距的功能,诚恳的感谢
- 找不到库文件
- 请教高手,“GNU-Win32”是个什么工具,“GNU”是什么意思,它是什么英文单词的简称?
- 送分,我中午提的问题,我怎么找不到了,除了一页页去翻,我怎么找到啊
- 我的一个基于对话框的程序,如何才能使它启动后不在任务栏中出现对应按钮?我已在对话框类中的PreCreatWindow()函数中加入了cs.dwExStyle |=WS_EX_TOOLWINDOW;可还不行,正常程序应在CMainFrame类中加的.
- MFC试图执行系统不支持的操作
- Dll里可以没有DllMain吗?
http://my.csdn.net/ignewbie/album/detail/1266161
m_pSet->m_totalnum=m_pSet->GetRecordCount();
str1.Format("%d",m_pSet->m_totalnum);
str1+="个记录数目";
MessageBox(str1);
CRecordsetStatus rStatus;
m_pSet->GetStatus(rStatus);
flag=rStatus.m_lCurrentRecord;
nownum=rStatus.m_lCurrentRecord;
if (flag)
{
MessageBox("总数确定!");
if (nownum==-2)
{
MessageBox("当前记录不确定!");
}
else if(nownum==-1)
MessageBox("当前记录太靠前");
else
{
str2.Format("%ld",nownum);
str2+="是当前记录锁定记录";
MessageBox(str2);
}
}
else
{
//str2.Format("%ld",nownum);
//str2+="是现在所在记录数";
//MessageBox(str2,"最后一行不确定");
MessageBox("总数不确定!");
if (nownum==-2)
{
MessageBox("当前记录不确定!");
}
else if(nownum==-1)
MessageBox("当前记录太靠前");
else
{
str2.Format("%ld",nownum);
str2+="是当前记录锁定记录";
MessageBox(str2);
}
}