📄 sdlg.cpp
字号:
m_butfirst.EnableWindow(true);
m_butnext.EnableWindow(false);
m_butlast.EnableWindow(false);
//m_butnext.
ShowEditData();
}
void CSDlg::OnButfind()
{
m_find.m_sql="SELECT * FROM s1 WHERE";
m_find.m_Recordset=m_Recordset;
int idok;
idok=m_find.DoModal();
if(idok==IDOK)
{
SetSame();
ShowEditData();
}
}
void CSDlg::OnButadd()
{
if(bonew)
{
m_butadd.SetWindowText("新的");
bonew=false;
SetEditROnly(true);
m_butfirst.EnableWindow(true);
m_butup.EnableWindow(true);
m_butnext.EnableWindow(true);
m_butlast.EnableWindow(true);
m_butdel.EnableWindow(true);
m_butfind.EnableWindow(true);
m_butmodify.EnableWindow(true);
m_butexit.EnableWindow(true);
// m_ok.EnableWindow(true);
AddData();
}
else
{
m_butadd.SetWindowText("插入完成");
bonew=true;
ReSetEdit();
// ReSetedit();
m_butfirst.EnableWindow(false);
m_butup.EnableWindow(false);
m_butnext.EnableWindow(false);
m_butlast.EnableWindow(false);
m_butdel.EnableWindow(false);
m_butfind.EnableWindow(false);
m_butmodify.EnableWindow(false);
m_butexit.EnableWindow(false);
SetEditROnly(false);
}
}
void CSDlg::OnButdel()
{
if(DeleDataBase())
{
ReSetEdit();
ShowEditData();
}
}
void CSDlg::OnButmodify()
{
if(modify)
{
m_butmodify.SetWindowText("修改");
modify=false;
SetEditROnly(true);
m_butfirst.EnableWindow(true);
m_butup.EnableWindow(true);
m_butnext.EnableWindow(true);
m_butlast.EnableWindow(true);
m_butdel.EnableWindow(true);
m_butfind.EnableWindow(true);
m_butadd.EnableWindow(true);
m_butexit.EnableWindow(true);
ModifyDatabase();
}
else
{
m_butmodify.SetWindowText("修改完成");
modify=true;
m_butfirst.EnableWindow(false);
m_butup.EnableWindow(false);
m_butnext.EnableWindow(false);
m_butlast.EnableWindow(false);
m_butdel.EnableWindow(false);
m_butfind.EnableWindow(false);
m_butadd.EnableWindow(false);
m_butexit.EnableWindow(false);
SetEditROnly(false);
m_edit1.GetWindowText(xh);
}
}
void CSDlg::ShowEditData()
{ CStringList m_stlist;
GetDataBase(m_stlist);
SetEditdata(SetListtostitle(m_stlist));
}
void CSDlg::AddData()
{
FieldPtr m_pFptr;
CStringList m_list;
SetStitleToList(m_list,GetEditData());
if(SameDataBase(m_list))
{
if(!m_Recordset->adoEOF)
{
m_Recordset->MoveLast();
m_Recordset->AddNew();
}
else
{
m_Recordset->AddNew();
}
long n=GetField(m_Recordset)->GetCount();
for(long i=1;i<=n-1;i++)
{
CString temp=m_list.GetAt(m_list.FindIndex(i-1));
if(temp.GetLength()== 0) temp.Format("[NULL]");//确保没有数据时能成功操作
m_pFptr=GetField(m_Recordset)->GetItem(i);
m_pFptr->PutValue(_variant_t(temp));
}
m_Recordset->Update();
}
else
{
AfxMessageBox("学号相同!操作失败!");
}
}
void CSDlg::GetDataBase(CStringList &m_list)
{
long len;
FieldPtr m_Fptr;
len=this->GetField(m_Recordset)->GetCount();
for(long i=1 ;i<=len-1;i++)
{
m_Fptr=GetField(m_Recordset)->GetItem(i);
m_list.AddHead((LPCTSTR)_bstr_t(m_Fptr->GetValue()));
}
}
void CSDlg::SetStitleToList(CStringList &m_list, stitle m_stitle)
{
m_list.AddHead(m_stitle.name16);
m_list.AddHead(m_stitle.name15);
m_list.AddHead(m_stitle.name14);
m_list.AddHead(m_stitle.name13);
m_list.AddHead(m_stitle.name12);
m_list.AddHead(m_stitle.name11);
m_list.AddHead(m_stitle.name10);
m_list.AddHead(m_stitle.name9);
m_list.AddHead(m_stitle.name8);
m_list.AddHead(m_stitle.name7);
m_list.AddHead(m_stitle.name6);
m_list.AddHead(m_stitle.name5);
m_list.AddHead(m_stitle.name4);
m_list.AddHead(m_stitle.name3);
m_list.AddHead(m_stitle.name2);
m_list.AddHead(m_stitle.name1);
}
void CSDlg::ReSetEdit()
{
m_edit1.SetWindowText("");
m_edit2.SetWindowText("");
m_edit3.SetWindowText("");
m_edit4.SetWindowText("");
m_edit5.SetWindowText("");
m_edit6.SetWindowText("");
m_edit7.SetWindowText("");
m_edit8.SetWindowText("");
m_edit9.SetWindowText("");
m_edit10.SetWindowText("");
m_edit11.SetWindowText("");
m_edit12.SetWindowText("");
m_edit13.SetWindowText("");
m_edit14.SetWindowText("");
m_edit15.SetWindowText("");
m_edit16.SetWindowText("");
}
BOOL CSDlg::DeleDataBase()
{
try
{
if(m_Recordset->adoEOF)
{
AfxMessageBox("数据库为空");
return false;
}
if(AfxMessageBox("真的要删除吗?",MB_YESNO)==IDYES)
{
m_Recordset->Delete(adAffectCurrent);//adAffectCurrent为当前记录
m_Recordset->Update();
m_Recordset->Requery(0);
if(m_Recordset->adoEOF)
{
AfxMessageBox("数据库为空");
return false;
}
}
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
return false;
}
return true;
}
void CSDlg::ModifyDatabase()
{
CStringList m_list;
FieldPtr m_pFptr;
SetStitleToList(m_list,GetEditData());
if(SameBaseinModify(m_list))
{
long n=GetField(m_Recordset)->GetCount();
for(long i=1;i<=n-1;i++)
{
CString temp=m_list.GetAt(m_list.FindIndex(i-1));
if(temp.GetLength()== 0) temp.Format("[NULL]");//确保没有数据时能成功操作
m_pFptr=GetField(m_Recordset)->GetItem(i);
m_pFptr->PutValue(_variant_t(temp));
}
m_Recordset->Update();
}
else
{
AfxMessageBox("学号相同!操作失败!");
}
}
void CSDlg::SetSame()
{
if(OpenDatabase())
{
_variant_t var,var1;
CString st,st1;
var=m_find.m_pRecordset->GetCollect("ID");
if(var.vt !=VT_NULL)
{
st=(LPCTSTR)_bstr_t(var);
}
while(!m_Recordset->adoEOF)
{
var1=m_Recordset->GetCollect("ID");
if(var1.vt !=VT_NULL)
{
st1=(LPCTSTR)_bstr_t(var1);
}
if(st == st1)
{
break;
}
m_Recordset->MoveNext();
}
}
}
BOOL CSDlg::SameDataBase(CStringList &m_list)
{
_RecordsetPtr m_Recordsettemp;
m_Recordsettemp.CreateInstance(__uuidof(Recordset));
try
{
m_Recordsettemp->Open("select * from s1",theApp.m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}
if(m_Recordsettemp->adoEOF)
{
AfxMessageBox("数据库为空,请添加后在操作");
return true;
}
_variant_t var1;
CString st1;
m_Recordsettemp->MoveFirst();
while(!m_Recordsettemp->adoEOF)
{
var1=m_Recordsettemp->GetCollect("学号");
if(var1.vt !=VT_NULL)
{
st1=(LPCTSTR)_bstr_t(var1);
}
if(m_list.GetHead() == st1)
{
m_Recordsettemp->Close();
m_Recordsettemp=NULL;
return false;
}
m_Recordsettemp->MoveNext();
}
return true;
}
BOOL CSDlg::SameBaseinModify(CStringList &m_list)
{
_RecordsetPtr m_Recordsettemp;
m_Recordsettemp.CreateInstance(__uuidof(Recordset));
try
{
m_Recordsettemp->Open("select * from s1",theApp.m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}
if(m_Recordsettemp->adoEOF)
{
AfxMessageBox("数据库为空,请添加后在操作");
return true;
}
_variant_t var1;
CString st1;
m_Recordsettemp->MoveFirst();
while(!m_Recordsettemp->adoEOF)
{
var1=m_Recordsettemp->GetCollect("学号");
if(var1.vt !=VT_NULL)
{
st1=(LPCTSTR)_bstr_t(var1);
}
if(st1 !=xh)
{
if(m_list.GetHead() == st1)
{
m_Recordsettemp->Close();
m_Recordsettemp=NULL;
return false;
}
}
m_Recordsettemp->MoveNext();
}
return true;
}
void CSDlg::SetEditROnly(BOOL m_show)
{
m_edit1.SetReadOnly(m_show);
m_edit2.SetReadOnly(m_show);
m_edit3.SetReadOnly(m_show);
m_edit4.SetReadOnly(m_show);
m_edit5.SetReadOnly(m_show);
m_edit6.SetReadOnly(m_show);
m_edit7.SetReadOnly(m_show);
m_edit8.SetReadOnly(m_show);
m_edit9.SetReadOnly(m_show);
m_edit10.SetReadOnly(m_show);
m_edit11.SetReadOnly(m_show);
m_edit12.SetReadOnly(m_show);
m_edit13.SetReadOnly(m_show);
m_edit14.SetReadOnly(m_show);
m_edit15.SetReadOnly(m_show);
m_edit16.SetReadOnly(m_show);
}
void CSDlg::OnKillfocusEdit1()
{
CString st,st2;
int n;
m_edit1.GetWindowText(st);
n=st.GetLength();
if(st == "") return;
for(int i=0;i<=n-1;i++)
{
st2=st.GetAt(i);
if(!((st2 >='0') && (st2 <='9')))
{
m_edit1.SetWindowText("");
AfxMessageBox("输入有字母等非数字,请输入整数");
m_edit1.SetFocus();
return;
}
}
}
void CSDlg::OnKillfocusEdit2()
{
CString st;
m_edit2.GetWindowText(st);
if(st.GetLength()==0)
{
AfxMessageBox("姓名不能为空");
m_edit2.SetFocus();
}
}
HBRUSH CSDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
CRect rect;
// if (nCtlColor == CTLCOLOR_COMBO)
// {
// }
if (nCtlColor == CTLCOLOR_EDIT)
{ /*m_brush.CreateSolidBrush(RGB(60,60,60));
pWnd->GetClientRect(rect);
pDC->FillRect(rect,&m_brush);
pDC->SetBkColor(RGB(60,60,60));
pDC->SetTextColor(RGB (255,255,255));
m_brush.DeleteObject();*/
}
if(nCtlColor == CTLCOLOR_STATIC)
{
m_brush.CreateSolidBrush(RGB(239,239,239));
pWnd->GetClientRect(&rect);
pDC->FillRect(rect,&m_brush);
pDC->SetBkColor(RGB(239,239,239));
pDC->SetTextColor(RGB (0,0,0));
m_brush.DeleteObject();
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
void CSDlg::OnButton1()
{
// TODO: Add your control notification handler code here
}
void CSDlg::OnButtfirst()
{
// TODO: Add your control notification handler code here
}
void CSDlg::OnKillfocusCombo1()
{
CString temp;
m_combo1.GetWindowText(temp);
if((strcmp(temp,"女")==0) || (strcmp(temp,"男")==0) )
{
return ;
}
else
{
AfxMessageBox("不是男女系统将设置为男");
m_combo1.SetCurSel(0);
}
}
void CSDlg::OnSetfocusCombo1()
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -