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);
}
相关文章推荐
- C#在winform中操作数据库,实现数据增删改查
- 使用ADO操作SQL SERVER 通过'OLE DB 访问 ACCESS 数据库 ,实现数据交换
- asp.netWeb开发中ztree实现无极限增删改查连接数据同步数据库操作
- 使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
- 控制台程序实现利用CRM组织服务和SqlConnection对数据库中数据的增删改查操作
- 通过jdbc实现对数据库中数据的增删查改操作
- Spring与SpringMVC整合,以及实现数据库数据的增删查改和分页操作
- 数据结构(二):Java实现:链表实现增删查操作(具有头结点)
- VC++中通过ADO中的_RecordsetPtr操作数据库:增删改查
- vc连接数据库,对数据的基本操作
- JDBC操作Vertica数据库,用PreparedStatements对象实现批量插入数据
- 【SQL】JDBC之运用dbutils组件实现对数据库的增删改查等操作
- vc中将access数据库表中的数据添加到一个ComboBox中,实现从数据库中添加ComboBox的属性
- Python教程:连接数据库,对数据进行增删改查操作
- 使用ADO实现vc中二进制文件数据的存取(以图像在数据库中的存取为例)
- JAVA对数据库进行操作,实现数据库中数据的插入,查询,更改,删除操作
- Dao接口实现基本的数据库操作。增删改查
- C#.NET实体代码生成工具,支持Access,MSSQLServer!实现数据库所有操作!
- vc++学生选课系统开发 sql 操作数据库添加数据 管理员对学生信息的添加
- C#2005中使用控件DataGridView实现对数据库增删改查操作