VC版学生成绩管理系统

VC版学生成绩管理系统

一.    功能需求: 

1.  能进行对数据库的连接(后台):

这是查询管理信息的基础。

2.  能进行增、删、改、查等基本功能:

这是学生成绩管理系统最基本的功能,可以在这个基础上进行扩展其他功能。

二.    总体设计:

1.  对数据库的连接(后台):

这是所有功能的基础,此项的实现可在后台进行。

我使用的是ADO方式连接数据库。(应避免让用户手动连接数据库)

这项功能写在一个类中最好。

2.  对窗体控件及相应的函数设计:

A.控件的添加:

       (1).要进进行增、删、改、查,必须要添加相应的按钮。

             在对话框的的特定区域添加相应的按钮,而且,对于增、删、改等操作只能由管理员进行,其他用户无权操作;对于查询,则可有按学号或按姓名等多种查询方式。

        (2).要能显示查询结果,必须有显示控件(我使用List Contral控件)。

        (3).要能有菜单就更好了。

B.相应控件响应函数的添加:

  为每个相应的控件添加响应函数。

三.    详细设计:

1.  对数据库的连接(后台):

1).引入ADO类库:

A.添加一个ADO连接类。

B.添加动态链接库:

在ADOConn.h的头文件中加入以下语句:

(2).封装ADO数据库对象:

A.在ADOConn.h头文件中添加成员变量:

 _ConnectionPtr m_pConnection;

    _RecordsetPtr m_pRecordset;

        (3).添加函数:

           A.添加初始化OLE/COM库环境函数(OnInitADOConn())。

           B.添加断开数据库连接函数(ExitConnect())。

           C.添加打开获得记录集函数(GetRecordSet())。

      D. 添加执行SQL语句的ExecuteSQL()函数。

 相关代码如下:

 

voidADOConn::OnInitADOConn()
{
 
  ::CoInitialize(NULL);       //初始化OLE/COM环境
    m_pConnection.CreateInstance(__uuidof(Connection));  //创建connection对象
   
    // 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
    // 因为它有时会经常出现一些意想不到的错误。
    try                
    {         
       // 打开本地Access库student.mdb
      
       m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=student.mdb","","",adModeUnknown);
    }
    //捕获异常
    catch(_com_error e)
    {
       AfxMessageBox(e.Description());
    }
}
void ADOConn::ExitConnect()
{
    //关闭记录集和连接
   if(m_pRecordset!=NULL)
       m_pRecordset->Close();
    m_pConnection->Close();
    //释放环境
    ::CoUninitialize();
}
_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)
{
  try
  {
      //连接数据库,如果conection对象为空,则重新连接数据库
      if(m_pConnection==NULL)
         OnInitADOConn();
      //创建记录集对象
     m_pRecordset.CreateInstance(__uuidof(Recordset));
      //取得表中的记录
     m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
  }
  catch(_com_error e)
  {
      e.Description();
  }
  //返回记录集
  return m_pRecordset;
}
BOOL ADOConn::ExecuteSQL(_bstr_t _bstrSQL)
{
    _variant_tRecordsAffected;
    try
    {
       //是否已连接数据库
       if(m_pConnection==NULL)
           OnInitADOConn();
       m_pConnection->Execute(_bstrSQL,NULL,adCmdText);
    
  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值