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,所以做的很简陋,仅仅以举例让大家入门,其实连接很简单,看完这两篇文章就入门了,而我花了一天时间到处查资料才弄出来,而且网上的代码都残缺不全,也不系统,不能针对高端,也不适合初学者,所以我就为大家分享了自己的经验。