实验报告
班级:网络Z091
学号:094552
姓名:李丹
一、
1.
2.
二、
1.
2.
三、
1. 实验目的 掌握数据库的基本知识、ODBC程序设计 掌握列表框和组合框控件 实验内容 在VC++6.0中编写程序 数据库应用程序基本设计和购物表设计 编程序 数据库
步骤:设置->控制面板->管理工具->数据源->添加->MicroSoft Access Driver(*mdb) 选择(刚建好的数据库)、数据源名(comp)
定义的变量:CCompanySet m_set;(CCompanySet自己添加的类,基类为CRecordSet)CListCtrl m_list;
CString m_chax;
⑴初始化:
void CCompanyView::OnInitialUpdate
{
m_list.InsertColumn(0,"num");
m_list.InsertColumn(1,"sex");
m_list.InsertColumn(2,"age");
m_list.InsertColumn(3,"wage");
m_list.SetColumnWidth(0,100);
m_list.SetColumnWidth(1,100);
m_list.SetColumnWidth(2,100);
m_list.SetColumnWidth(3,100);
CString sql="select * from comp";
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql);//打开记录集
int i=0;
while(!m_set.IsEOF)
{
m_list.InsertItem(i,m_set.m_num);
m_list.SetItemText(i,1,m_set.m_sex);
CString str;
str.Format("%d",m_set.m_age);
m_list.SetItemText(i,2,str);
m_list.SetItemText(i,3,m_set.m_wage);
m_set.MoveNext;
i++;
}
m_set.Close;
}
⑵“添加”调出新对话框(IDD_DIALOG1)
创建一个新类CCompDlg,并添加头文件” #include "CompDlg.h"”
及成员变量(CString m_num; int m_sex; CString m_wage; int m_age;)
void CCompanyView::OnAdd
{
CCompDlg dlg;
if(dlg.DoModal==IDOK)
{
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,NULL); m_set.AddNew;
m_set.m_num=dlg.m_num;
if(dlg.m_sex==0)
m_set.m_sex="男";
else
m_set.m_sex="女";
m_set.m_age=dlg.m_age;
m_set.m_wage =dlg.m_wage;
m_set.Update;
m_set.Close;
}
}
⑶“删除”
void CCompanyView::OnDel
{
int i=m_list.GetSelectionMark;
if(i<0)
this->MessageBox("先选取记录");
else
{
CString xnum1;
char xnum[10];
int x=m_list.GetItemText(i,0,xnum,10);
xnum1.Format("%s",xnum);
CString sql="select * from comp where num='"+xnum1+"'"; m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql); m_set.Delete;
m_set.Close;
}
}
⑷“浏览”
void CCompanyView::OnScan
{
m_list.DeleteAllItems;
CString sql="select * from
comp";
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql);int i=0;
while(!m_set.IsEOF)
m_list.InsertItem(i,m_set.m_num);
m_list.SetItemText(i,1,m_set.m_sex);
CString str;
str.Format("%d",m_set.m_age);
m_list.SetItemText(i,2,str);
m_list.SetItemText(i,3,m_set.m_wage);
m_set.MoveNext;
i++;
}
m_set.Close;
}
⑸“修改”
void CCompanyView::OnEdit
{
CCompDlg dlg;
int i=m_list.GetSelectionMark;
if(i<0)
{
this->MessageBox("先选取记录");
return;
}
CString xnum0,xnum1;
char xnum[10];
int x=m_list.GetItemText(i,0,xnum,10);
xnum1.Format("%s",xnum);
dlg.m_num=xnum1;
xnum0=xnum1;
CString str="select * from comp where num='"+xnum0+"'"; m_set.Open(AFX_DB_USE_DEFAULT_TYPE,str);dlg.m_num=m_set.m_num;
dlg.m_age=m_set.m_age;
dlg.m_wage=m_set.m_wage;
if(m_set.m_sex=="男")
dlg.m_sex=0;
else
dlg.m_sex=1;
dlg.DoModal;
m_set.Edit;
m_set.m_num=dlg.m_num;
m_set.m_age=dlg.m_age;
m_set.m_wage=dlg.m_wage;
if(dlg.m_sex==0)
m_set.m_sex="男";
m_set.m_sex ="女";
m_set.Update;
m_set.Close;
}
⑹“查询”
void CCompanyView::OnQuery
{
this->UpdateData;
CString sql;
sql="select * from comp where num='"+m_chax+"'"; m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql); m_set.Requery ;
if(m_set.IsEOF)
{
AfxMessageBox("ERROR");
return ;
}
m_list.DeleteAllItems;
int i=0;
while(!m_set.IsEOF)
{
m_list.InsertItem(i,m_set.m_num);
m_list.SetItemText(i,1,m_set.m_sex);
CString str;
str.Format("%d",m_set.m_age);
m_list.SetItemText(i,2,str);
m_list.SetItemText(i,3,m_set.m_wage);
m_set.MoveNext;
i++;
}
m_set.Close;
}
2. 购物表设计
添加了两个结构体
struct GoodsType
{
char * type;
char * name;
int price;
}goods={
"日常用品","牙刷",2,
"日常用品","牙膏",3,
"日常用品","毛巾",5,
因篇幅问题不能全部显示,请点此查看更多更全内容