您的位置:首页 > 数据库

MFC连接到SQL(ADO数据库访问技术)——表的查询,添加,删除

2014-03-31 09:14 627 查看


MFC连接到SQL(ADO数据库访问技术)——表的查询,添加,删除

看了我的那篇文章“MFC连接到SQL(ADO数据库访问技术)——绝对简单”之后,你或许会问,为什么要连接了,下面就是一个应用:表的查询,添加,删除。【注:例子很简单很固定】

1.初始操作:如上篇文章“MFC连接到SQL(ADO数据库访问技术)——绝对简单”

2.在sql中建个student(sno char(6),sname(20),sage int)表,插入一些值。

3。连接好了,但是如果想要查询表格呢,就看下面:拖一个Listctrl控件显示(ctrl+w设置变量名m_list)『属性中查看设为“报道”』,一个button查询,一个button添加,一个button删除。然后就代码了:

在OnInitDialog()函数中添加:

//初始化表格m_list是listctrl的变量

m_list.SetExtendedStyle(LVS_EX_FLATSB

|LVS_EX_FULLROWSELECT

|LVS_EX_GRIDLINES);

m_list.InsertColumn(0,"Sno");

m_list.InsertColumn(1,"Sname");

m_list.InsertColumn(2,"Sage");

CRect rect3;

m_list.GetClientRect(rect3);

m_list.SetColumnWidth(0,rect3.Width()/3);

m_list.SetColumnWidth(1,rect3.Width()/3);

m_list.SetColumnWidth(2,rect3.Width()/3);

不要问我这些函数,自己查msdn(我只能提供框架)。

4.查询button中添加: if(m_list)

m_list.DeleteAllItems();

int intm;

try

{

_variant_t RecordsAffected;

_bstr_t sno, sname,sage;

mysql.m_pRecordset = mysql.m_pConnection->Execute("select * from student",&RecordsAffected,adCmdText);

while(!mysql.m_pRecordset->adoEOF)

{//获取表中信息

sno= mysql.m_pRecordset->GetCollect("sno");

sname=mysql.m_pRecordset->GetCollect("sname");

sage=mysql.m_pRecordset->GetCollect("sage");

//显示表中信息

intm=m_list.InsertItem(0,(_bstr_t)sno);

m_list.SetItem(intm,1,1,(_bstr_t)sname,NULL,0,0,0);

m_list.SetItem(intm,2,1,(_bstr_t)sage,NULL,0,0,0);

mysql.m_pRecordset->MoveNext();

}

AfxMessageBox("查询成功!");

}

catch (_com_error e)

{

CString errormessage;

errormessage.Format("查询失败!\r\n错误信息:%s",e.ErrorMessage());

AfxMessageBox(errormessage);

return ;

}

5.好了,不要着急哦,在添加button前要添加几个edit的控件哦,然后从中读入数据,我取变量名为m_e1,m_e2,m_e3;然后添加代码:

try

{

_variant_t RecordsAffected;

CString sno;

CString sname;

CString sage;

_bstr_t Insert;

m_e1.GetWindowText(sno);

m_e2.GetWindowText(sname);

m_e3.GetWindowText(sage);

Insert = "Insert into student(sno, sname, sage) values('" + sno + "',\

'" + sname + "', '" + sage + "' ) ";

mysql.m_pRecordset = mysql.m_pConnection->\

Execute(Insert, &RecordsAffected, adCmdText);

AfxMessageBox("添加成功!");

//清空输入框

m_e1.SetSel(0,-1);

m_e1.Clear();

m_e2.SetSel(0,-1);

m_e2.Clear();

m_e3.SetSel(0,-1);

m_e3.Clear();

}

catch (_com_error e)

{

CString errormessage;

errormessage.Format("添加失败!\r\n错误信息:%s", e.ErrorMessage());

AfxMessageBox(errormessage);

return ;

}

6现在是删除了,我举的是通过学号删除列,添加一个edit控件,取名m_e4。添加代码:

try

{

_variant_t RecordsAffected;

CString sno,sname,sage;

_bstr_t Delete;

m_e4.GetWindowText(sno);

Delete="delete from student where sno='"+sno+"'";

mysql.m_pRecordset = mysql.m_pConnection->Execute(Delete,&RecordsAffected,adCmdText);

AfxMessageBox("删除成功!");

//清空输入框

m_e4.SetSel(0,-1);

m_e4.Clear();

}

catch (_com_error e)

{

CString errormessage;

errormessage.Format("删除失败!\r\n错误信息:%s",e.ErrorMessage());

AfxMessageBox(errormessage);

return ;

}

7在退出连接的按钮代码下添加:

mysql.ExitConnect();

8.如有不懂,看我的上篇文章“MFC连接到SQL(ADO数据库访问技术)——绝对简单”

大功完成,其实我只是初识MFC,所以做的很简陋,仅仅以举例让大家入门,其实连接很简单,看完这两篇文章就入门了,而我花了一天时间到处查资料才弄出来,而且网上的代码都残缺不全,也不系统,不能针对高端,也不适合初学者,所以我就为大家分享了自己的经验。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐