这是一个"删除按钮"的OnDel() 函数.可是在点击"删除按钮"时会出错,这是为什么呢?
我做的是单文档的项目,就是可以动态的删除数据库里面的条目信息.
请各位解困了 急~~~~~
代码如下:void CClientView::OnDel()
{
// TODO: Add your control notification handler code here
//i是记录中所选的记录号,如果没有则返回
int i=m_ctrlperson.GetSelectionMark();//全局变量CListCtrl m_ctrlperson;
CString strSQL,msg,strname;
strname=m_ctrlperson.GetItemText(i,1);
msg.Format("该记录将被删除!是否继续?",i+1,strname);
//如果用户没有选择记录,则提示选取一条记录
if(i==-1)
{
MessageBox("请选择一条要删除的记录!","提示",MB_OK|MB_ICONINFORMATION);
}
else
{
if(MessageBox(msg,"提示",MB_YESNO|MB_ICONINFORMATION)==IDYES)
{
CString strname=m_ctrlperson.GetItemText(i,1);
//从表中删除对应的记录
strSQL.Format("delete from person where name='%s'",strname);
m_database.ExecuteSQL(strSQL);
m_database.Close();
}
}
}
我做的是单文档的项目,就是可以动态的删除数据库里面的条目信息.
请各位解困了 急~~~~~
代码如下:void CClientView::OnDel()
{
// TODO: Add your control notification handler code here
//i是记录中所选的记录号,如果没有则返回
int i=m_ctrlperson.GetSelectionMark();//全局变量CListCtrl m_ctrlperson;
CString strSQL,msg,strname;
strname=m_ctrlperson.GetItemText(i,1);
msg.Format("该记录将被删除!是否继续?",i+1,strname);
//如果用户没有选择记录,则提示选取一条记录
if(i==-1)
{
MessageBox("请选择一条要删除的记录!","提示",MB_OK|MB_ICONINFORMATION);
}
else
{
if(MessageBox(msg,"提示",MB_YESNO|MB_ICONINFORMATION)==IDYES)
{
CString strname=m_ctrlperson.GetItemText(i,1);
//从表中删除对应的记录
strSQL.Format("delete from person where name='%s'",strname);
m_database.ExecuteSQL(strSQL);
m_database.Close();
}
}
}
还有,你使用的是什么数据库?字段名最好不要使用 name 这种,怕遇到关键字。
跟踪你的代码看看是什么地方出的问题,然后再提出相应的问题
我用的是ACCESS的数据库
最后我把代码改成了这样 还是会出错啊 晕死!!!!!!!
void CClientView::OnDel()
{
// TODO: Add your control notification handler code here
//i是记录中所选的记录号,如果没有则返回
int i=m_ctrlperson.GetSelectionMark();
//如果用户没有选择记录,则提示选取一条记录
if(i==-1)
{
MessageBox("请选择一条要删除的记录!","提示",MB_OK|MB_ICONINFORMATION);
}
else
{
}
}
strSQL.Format("delete from person where name='%s'",strname);
m_database.ExecuteSQL(strSQL);
int i=m_ctrlperson.GetSelectionMark();
我就搞不懂了 ???这句话不应该出错吧 晕死.......
怀疑m_ctrlperson.m_hWnd为非法值,即m_ctrlperson窗口不存在。