您的位置:首页 > 编程语言 > C语言/C++

vc++实现对列表框的操作 ado 操作数据库实现对数据的增删 access

2012-12-10 12:24 459 查看
实现对数据的增删改
BOOLCDiaDlg::OnInitDialog()
{
CDialog::OnInitDialog();

//Add"About..."menuitemtosystemmenu.

//IDM_ABOUTBOXmustbeinthesystemcommandrange.
ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX<0xF000);

CMenu*pSysMenu=GetSystemMenu(FALSE);
if(pSysMenu!=NULL)
{
CStringstrAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if(!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);
}
}

//Settheiconforthisdialog.Theframeworkdoesthisautomatically
//whentheapplication'smainwindowisnotadialog
SetIcon(m_hIcon,TRUE); //Setbigicon
SetIcon(m_hIcon,FALSE); //Setsmallicon

//TODO:Addextrainitializationhere
m_Grid.SetExtendedStyle(LVS_EX_FLATSB
|LVS_EX_FULLROWSELECT
|LVS_EX_HEADERDRAGDROP
|LVS_EX_ONECLICKACTIVATE
|LVS_EX_GRIDLINES);
m_Grid.InsertColumn(0,"id",LVCFMT_LEFT,110,0);
m_Grid.InsertColumn(1,"name",LVCFMT_LEFT,110,1);
m_Grid.InsertColumn(2,"sex",LVCFMT_LEFT,110,2);
m_Grid.InsertColumn(3,"xueli",LVCFMT_LEFT,110,3);
AddToGrid();

returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
}

voidCDiaDlg::OnSysCommand(UINTnID,LPARAMlParam)
{
if((nID&0xFFF0)==IDM_ABOUTBOX)
{
CAboutDlgdlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID,lParam);
}
}

//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow
//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,
//thisisautomaticallydoneforyoubytheframework.

voidCDiaDlg::OnPaint()
{
if(IsIconic())
{
CPaintDCdc(this);//devicecontextforpainting

SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);

//Centericoninclientrectangle
intcxIcon=GetSystemMetrics(SM_CXICON);
intcyIcon=GetSystemMetrics(SM_CYICON);
CRectrect;
GetClientRect(&rect);
intx=(rect.Width()-cxIcon+1)/2;
inty=(rect.Height()-cyIcon+1)/2;

//Drawtheicon
dc.DrawIcon(x,y,m_hIcon);
}
else
{
CDialog::OnPaint();
}
}

//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags
//theminimizedwindow.
HCURSORCDiaDlg::OnQueryDragIcon()
{
return(HCURSOR)m_hIcon;
}

voidCDiaDlg::OnInitADOConn()
{
try
{
//创建连接对象实例
m_pConnection.CreateInstance("ADODB.Connection");
//设置连接字符串(2000的在代码中有!)
CStringstrConnect="DRIVER={MicrosoftAccessDriver(*.mdb)};\
uid=;pwd=;DBQ=shujuku.mdb";
//使用Open方法连接数据库
m_pConnection->Open((_bstr_t)strConnect,"","",adModeUnknown);
}
catch(_com_errore)
{
AfxMessageBox(e.Description());
}

}

voidCDiaDlg::ExitConnect()
{
//关闭记录集和连接
if(m_pRecordset!=NULL)
m_pRecordset->Close();
m_pConnection->Close();

}

voidCDiaDlg::AddToGrid()
{
//连接数据库
OnInitADOConn();
//设置查询字符串
_bstr_tbstrSQL="select*from表1orderbyiddesc";
//创建记录集指针对象实例
m_pRecordset.CreateInstance(__uuidof(Recordset));
//打开记录集
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,
adLockOptimistic,adCmdText);
while(!m_pRecordset->adoEOF)
{
m_Grid.InsertItem(0,"");
m_Grid.SetItemText(0,0,(char*)(_bstr_t)m_pRecordset->GetCollect("id"));
m_Grid.SetItemText(0,1,(char*)(_bstr_t)m_pRecordset->GetCollect("name"));
m_Grid.SetItemText(0,2,(char*)(_bstr_t)m_pRecordset->GetCollect("sex"));
m_Grid.SetItemText(0,3,(char*)(_bstr_t)m_pRecordset->GetCollect("xueli"));
//将记录集指针移动到下一条记录
m_pRecordset->MoveNext();
}
//断开数据库连接
ExitConnect();

}

voidCDiaDlg::OnButton3()
{
//TODO:Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
if(m_Id.IsEmpty()||m_Name.IsEmpty()||m_Sex.IsEmpty()||m_Xueli.IsEmpty())
{
MessageBox("基础信息不能为空!");
return;
}
OnInitADOConn();
_bstr_tsql;
sql="select*from表1";
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->Open(sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,
adLockOptimistic,adCmdText);
try
{
m_pRecordset->AddNew();//添加新行
m_pRecordset->PutCollect("id",(_bstr_t)m_Id);
m_pRecordset->PutCollect("name",(_bstr_t)m_Name);
m_pRecordset->PutCollect("sex",(_bstr_t)m_Sex);
m_pRecordset->PutCollect("xueli",(_bstr_t)m_Xueli);

m_Name=m_Sex=m_Id=m_Xueli="";

m_pRecordset->Update();//更新数据表
m_Name=m_Sex=m_Id=m_Xueli="";
UpdateData(FALSE);

ExitConnect();
}
catch(...)
{
MessageBox("操作失败");
return;
}
MessageBox("添加成功");
m_Grid.DeleteAllItems();//删除列表控件
AddToGrid();

}

voidCDiaDlg::OnButton2()
{
//TODO:Addyourcontrolnotificationhandlercodehere
OnInitADOConn();
_bstr_tsql;
sql="select*from表1";
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->Open(sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,
adLockOptimistic,adCmdText);
longpos=m_Grid.GetSelectionMark();
try
{
m_pRecordset->Move((long)pos,vtMissing);
m_pRecordset->Delete(adAffectCurrent);
m_pRecordset->Update();
m_Name=m_Sex=m_Id=m_Xueli="";
UpdateData(FALSE);

ExitConnect();
}
catch(...)
{
MessageBox("操作失败");
return;
}
MessageBox("删除成功");
m_Grid.DeleteAllItems();
AddToGrid();

}

voidCDiaDlg::OnClickList1(NMHDR*pNMHDR,LRESULT*pResult)
{
//TODO:Addyourcontrolnotificationhandlercodehere
longpos=m_Grid.GetSelectionMark();
m_Id=m_Grid.GetItemText(pos,0);
m_Name=m_Grid.GetItemText(pos,1);
m_Sex=m_Grid.GetItemText(pos,2);
m_Xueli=m_Grid.GetItemText(pos,3);
UpdateData(FALSE);

*pResult=0;
}

voidCDiaDlg::OnButton1()
{
//TODO:Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
if(m_Id.IsEmpty()||m_Name.IsEmpty()||m_Sex.IsEmpty()||m_Xueli.IsEmpty())
{
MessageBox("基础信息不能为空!");
return;
}
OnInitADOConn();

_RecordsetPtrpRs("ADODB.Recordset");

_bstr_tsql;
sql="select*from表1";
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->Open(sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,
adLockOptimistic,adCmdText);
longpos=m_Grid.GetSelectionMark();
_variant_tvar,varIndex;
CStringvSQL;
_variant_tRecordsAffected;

try
{
UpdateData(TRUE);
m_pRecordset->AddNew();//添加新行
if(m_Id.IsEmpty())
return;

//m_pRecordset->Move((long)pos,vtMissing);
//m_pRecordset->Delete(adAffectCurrent);
// m_pRecordset->Update();

m_pRecordset->PutCollect("id",(_bstr_t)m_Id);
m_pRecordset->PutCollect("name",(_bstr_t)m_Name);
m_pRecordset->PutCollect("sex",(_bstr_t)m_Sex);
m_pRecordset->PutCollect("xueli",(_bstr_t)m_Xueli);

m_pRecordset->Move((long)pos,vtMissing);
m_pRecordset->Delete(adAffectCurrent);

m_pRecordset->Update();
m_Name=m_Sex=m_Id=m_Xueli="";
UpdateData(FALSE);
}

catch(...)
{

MessageBox("操作失败");
return;

}
MessageBox("修改成功");
m_Grid.DeleteAllItems();
AddToGrid();

}

voidCDiaDlg::OnButton5()
{
//TODO:Addyourcontrolnotificationhandlercodehere
m_Id="";
m_Name="";
m_Sex="";
m_Xueli="";
UpdateData(FALSE);

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐