可以进行数据传输的银行管理系统

来源:互联网 发布:超市商品毛利率知乎 编辑:程序博客网 时间:2024/04/29 20:43
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename ("EOF", "EndOfFile")
#include <iostream>
#include <iomanip> //for setw()
#include<string>
#include<stdio.h>
#include<string.h>
#include "windows.h"
#include<sql.h>
#include<vector>
using namespace std;
class customer
{
public:
    char cid[20];
    char cname[20];
    char city[20];
    char trust_abi[20];
public:
    customer(){}
    ~customer(){}
};
class manager
{
public:
    char mid[20];
    char mname[20];
    char mcity[20];
    char bid[20];
public:
    manager(){}
    ~manager(){}
};
class fund_bill
{
public:
    char card_no[20];
    char mid[20];
    char cid[20];
    char fortune_amount[20];
    char deposite_date[20];
public:
    fund_bill(){}
    ~fund_bill(){}
};
class draw_bill
{
public:
    char card_no[20];
    char cid[20];
    char mid[20];
    char draw_money[20];
    char draw_date[20];
    char rest_money[20];
    char rate[20];
public:
    draw_bill(){}
    ~draw_bill(){}
};

class bank
{
public:
    char card_type[20];
    char bid[20];
    char address[20];
    char asset[20];

public:
    bank(){}
    ~bank(){}
};
int main()
{
    int m=0,n=0;
    customer cus;
    manager man;
    fund_bill fund;
    draw_bill draw;
    bank ban;

    ::CoInitialize(NULL); // 初始化OLE/COM库环境 ,为访问ADO接口做准备
    // 创建记录集对象
    _RecordsetPtr m_pRecordset("ADODB.Recordset");
    //m_pRecordset.CreateInstance(__uuidof(Recordset));
    //创建connection对象
    _ConnectionPtr m_pConnection("ADODB.Connection");
    //设置连接字符串
    //_bstr_t strConnect=("driver={SQL Server};Server=(local)\\sqlexpress;DATABASE=CAP;UID=sa;PWD=sa123456;");
    _bstr_t strConnect= "Provider=SQLOLEDB;Database=CAP; uid=sa; pwd=123456;";

    cout<<"       欢迎来到银行管理系统    "<<endl;
    cout<<endl;
    while(n<=5)
    {
        cout << "选择您需要操作的表单" << endl;
        cout << "1 操作customer表单" << endl;
        cout << "2 操作manager表单" << endl;
        cout << "3 操作fund表单" << endl;
        cout << "4 操作draw表单" << endl;
        cout << "5 操作bank表单" << endl;

        cout << "请输入你选择的菜单号<1,2,3,4,5>:";
        cin >> n;
        cout << endl;
    char Stence[300];
    if(n==1)
    {
      m=0;
      _bstr_t bstrSQL("select * from customer"); //查询语句,表stu_info
      std::cout<<"creating from database..."<<endl;
      while(m<=4)
      {
        cout<<"1查询"<<endl;
        cout<<"2删除"<<endl;
        cout<<"3增加"<<endl;
        cout<<"4修改"<<endl;
        cout<<"请选择操作的菜单号:";
        cin>>m;
        cout<<endl;
        char *query_cmd;
        char *query_cmd1;
        char *puery_cmd;
        char *puery_cmd1;
        switch(m)
        {
        case 1:
            try{
                cout<<'1';
                m_pConnection->Open(strConnect,"","",adModeUnknown);
                if(m_pConnection==NULL)
                    cerr<<"Lind data ERROR!n";
                    _variant_t vcid,vcname,vcity,vtrust_abi; //对应库中的cid,cname,city,discnt
                cout<<'1';
        while(1)
        {
            // 取得表中的记录
            m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
            cout << "cid       cname   city    trust_abi \n";
            cout<<"n----------------------------------------------------------------n\n";
            while (!m_pRecordset->EndOfFile)
            {
                vcid = m_pRecordset->GetCollect(_variant_t((long)0));
                vcname = m_pRecordset->GetCollect("cname");
                vcity = m_pRecordset->GetCollect("city");
                vtrust_abi = m_pRecordset->GetCollect("trust_abi");
                if (vcid.vt != VT_NULL && vcname.vt != VT_NULL && vcity.vt != VT_NULL && vtrust_abi.vt != VT_NULL )
                {
                    cout<<'1';
                    cout.setf(ios::left);
                    cout << setw(10) << (char*)(_bstr_t)vcid;
                    cout << setw(10) << (char*)(_bstr_t)vcname;
                    cout << setw(8) << (char*)(_bstr_t)vcity;
                    cout <<setw(20) << (char*)(_bstr_t)vtrust_abi;
                    cout.unsetf(ios::left);
                    cout << endl;
                }
                m_pRecordset->MoveNext(); ///移到下一条记录
            }
            cout << "n----------------------------------------------------------------n\n";
            m_pRecordset->Update();
            //m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除
            m_pRecordset->Close(); // 关闭记录集
        }
    }
    // 捕捉异常
    catch(_com_error e)
    {
        // 显示错误信息
      // cerr << "nERROR:" << (char*)e.Description();//抛出异常
    }
    if(m_pConnection->State)
        m_pConnection->Close();
    ::CoUninitialize();
    break;

        case 2:
            cout<<"输出删除的cid:";
            cin>>cus.cid;
            strcpy(Stence,"delete from customer where cid ='");
            strcat(Stence,cus.cid);
            strcat(Stence,"'");
            query_cmd=Stence;
            std::cout<<"creating from database..."<<endl;
            try
            {
                m_pConnection->Open(strConnect,"","",adModeUnknown);
                if(m_pConnection==NULL)
                    cerr<<"Lind data ERROR!n";
                _variant_t vcid,vcname,vcity,vtrust_abi; //对应库中的cid,cname,city,discnt

                m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

                m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除
                m_pRecordset->Update();
                m_pRecordset->Close(); // 关闭记录集
                std::cout<<"deleting from database..."<<endl;
            }
            // 捕捉异常
            catch(_com_error e)
            {
                // 显示错误信息
              // cerr << "nERROR:" << (char*)e.Description();//抛出异常
            }
            if(m_pConnection->State)
                m_pConnection->Close();
            ::CoUninitialize();
            break;
        case 3:
            cout<<"请输入新增信息(用户编号、姓名、城市、信用度):";
            cin>>cus.cid;
            cin>>cus.cname;
            cin>>cus.city;
            cin>>cus.trust_abi;
            strcpy(Stence,"insert into customer values('");
            strcat(Stence,cus.cid);
            strcat(Stence,"','");
            strcat(Stence,cus.cname);
            strcat(Stence,"','");
            strcat(Stence,cus.city);
            strcat(Stence,"','");
            strcat(Stence,cus.trust_abi);
            strcat(Stence,"')");
            puery_cmd=Stence;
            std::cout<<"creating from database..."<<endl;
            try
            {
                m_pConnection->Open(strConnect,"","",adModeUnknown);
                if(m_pConnection==NULL)
                    cerr<<"Lind data ERROR!n";
                _variant_t vcid,vcname,vcity,vtrust_abi; //对应库中的cid,cname,city,discnt

                    // 取得表中的记录
                m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
                m_pConnection->Execute(puery_cmd,NULL,1);
                m_pRecordset->Update();
                m_pRecordset->Close(); // 关闭记录集
                std::cout<<"adding from database..."<<endl;
            }
            // 捕捉异常
            catch(_com_error e)
            {
                // 显示错误信息
              // cerr << "nERROR:" << (char*)e.Description();//抛出异常
            }
            if(m_pConnection->State)
                m_pConnection->Close();
            ::CoUninitialize();
            break;
        case 4:
            cout<<"请输入需要修改的cid:";
            cin>>cus.cid;
            cout<<"请输入 名字  城市 信誉度:";
            cin>>cus.cname;
            cin>>cus.city;
            cin>>cus.trust_abi;
            strcpy(Stence,"update customer set cname='");
            strcat(Stence,cus.cname);
            strcat(Stence,"',city='");
            strcat(Stence,cus.city);
            strcat(Stence,"',trust_abi='");
            strcat(Stence,cus.trust_abi);
            strcat(Stence,"'where cid='");
            strcat(Stence,cus.cid);
            strcat(Stence,"'");
            puery_cmd1=Stence;
            std::cout<<"creating from database..."<<endl;
            try
            {
                m_pConnection->Open(strConnect,"","",adModeUnknown);
                if(m_pConnection==NULL)
                    cerr<<"Lind data ERROR!n";
                _variant_t vcid,vcname,vcity,vtrust_abi; //对应库中的cid,cname,city,discnt

                    // 取得表中的记录
                m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
                m_pConnection->Execute(puery_cmd1,NULL,1);
                m_pRecordset->Update();
                m_pRecordset->Close(); // 关闭记录集
                std::cout<<"adding from database..."<<endl;
            }
            // 捕捉异常
            catch(_com_error e)
            {
                // 显示错误信息
              // cerr << "nERROR:" << (char*)e.Description();//抛出异常
            }
            if(m_pConnection->State)
                m_pConnection->Close();
            ::CoUninitialize();
            break;
        }//endswich
    }//endwhilem



  }//endif1
  if(n==2){
        _bstr_t bstrSQL("select * from manager"); //查询语句,表stu_info
        m=0;
        while(m<=4)
        {
            cout<<"1查询"<<endl;
            cout<<"2删除"<<endl;
            cout<<"3增加"<<endl;
            cout<<"4修改"<<endl;
            cout<<"请选择操作的菜单号:";
            cin>>m;
            cout<<endl;
            char *query_cmd2;
            char *query_cmd3;
            char *query_cmd4;
            switch(m)
            {
            case 1:
                try
                {
                    m_pConnection->Open(strConnect,"","",adModeUnknown);
                    if(m_pConnection==NULL)
                        cerr<<"Lind data ERROR!n";
                    _variant_t vmid,vmname,vmcity,vbid; //对应库中的cid,cname,city,discnt

                    while(1)
                    {
                        // 取得表中的记录
                        m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
                        cout << "mid       mname   city          bid \n";
                        cout<<"n----------------------------------------------------------------n\n";
                        while (!m_pRecordset->EndOfFile)
                        {
                            vmid = m_pRecordset->GetCollect(_variant_t((long)0));
                            vmname = m_pRecordset->GetCollect("mname");
                            vmcity = m_pRecordset->GetCollect("mcity");
                            vbid = m_pRecordset->GetCollect("bid");
                            if (vmid.vt != VT_NULL && vmname.vt != VT_NULL && vmcity.vt != VT_NULL && vbid.vt != VT_NULL )
                            {
                                cout.setf(ios::left);
                                cout << setw(10) << (char*)(_bstr_t)vmid;
                                cout << setw(10) << (char*)(_bstr_t)vmname;
                                cout << setw(15) << (char*)(_bstr_t)vmcity;
                                cout <<setw(10) << (char*)(_bstr_t)vbid;
                                cout.unsetf(ios::left);
                                cout << endl;
                            }
                            m_pRecordset->MoveNext(); ///移到下一条记录
                        }
                        cout << "n----------------------------------------------------------------n\n";
                        m_pRecordset->Update();
                        //m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除
                        m_pRecordset->Close(); // 关闭记录集
                    }
                }
                // 捕捉异常
                catch(_com_error e)
                {
                    // 显示错误信息
                  // cerr << "nERROR:" << (char*)e.Description();//抛出异常
                }
                if(m_pConnection->State)
                    m_pConnection->Close();
                ::CoUninitialize();
                break;
            case 2:
                cout<<"输出删除的cid:";
                cin>>man.mid;
                strcpy(Stence,"delete from manager where mid ='");
                strcat(Stence,man.mid);
                strcat(Stence,"'");
                query_cmd2=Stence;
                std::cout<<"creating from database..."<<endl;
                try
                {
                    m_pConnection->Open(strConnect,"","",adModeUnknown);
                    if(m_pConnection==NULL)
                        cerr<<"Lind data ERROR!n";
                    _variant_t vmid,vmname,vmcity,vbid; //对应库中的cid,cname,city,discnt

                    m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

                    m_pConnection->Execute(query_cmd2,NULL,1); //用Execute执行sql语句来删除
                    m_pRecordset->Update();
                    m_pRecordset->Close(); // 关闭记录集
                    std::cout<<"deleting from database..."<<endl;
                }
                // 捕捉异常
                catch(_com_error e)
                {
                    // 显示错误信息
                  // cerr << "nERROR:" << (char*)e.Description();//抛出异常
                }
                if(m_pConnection->State)
                    m_pConnection->Close();
                ::CoUninitialize();
                break;
            case 3:
                cout<<"请输入新增信息(经理编号、姓名、城市、银行编号):";
                cin>>man.mid;
                cin>>man.mname;
                cin>>man.mcity;
                cin>>man.bid;
                strcpy(Stence,"insert into manager values('");
                strcat(Stence,man.mid);
                strcat(Stence,"','");
                strcat(Stence,man.mname);
                strcat(Stence,"','");
                strcat(Stence,man.mcity);
                strcat(Stence,"','");
                strcat(Stence,man.bid);
                strcat(Stence,"')");
                query_cmd3=Stence;
                std::cout<<"creating from database..."<<endl;
                try
                {
                    m_pConnection->Open(strConnect,"","",adModeUnknown);
                    if(m_pConnection==NULL)
                        cerr<<"Lind data ERROR!n";
                    _variant_t vmid,vmname,vmcity,vbid; //对应库中的cid,cname,city,discnt

                        // 取得表中的记录
                    m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
                    m_pConnection->Execute(query_cmd3,NULL,1);
                    m_pRecordset->Update();
                    m_pRecordset->Close(); // 关闭记录集
                    std::cout<<"adding from database..."<<endl;
                }
                // 捕捉异常
                catch(_com_error e)
                {
                    // 显示错误信息
                  // cerr << "nERROR:" << (char*)e.Description();//抛出异常
                }
                if(m_pConnection->State)
                    m_pConnection->Close();
                ::CoUninitialize();
                break;
            case 4:
                cout<<"请输入需要修改的mid:";

                cin>>man.mid;
                cout<<"请输入修改的名字 城市 银行编号:";
                cin>>man.mname;
                cin>>man.mcity;
                cin>>man.bid;
                strcpy(Stence,"update manager set mname='");
                strcat(Stence,man.mname);
                strcat(Stence,"',mcity='");
                strcat(Stence,man.mcity);
                strcat(Stence,"',bid='");
                strcat(Stence,man.bid);
                strcat(Stence,"'where mid='");
                strcat(Stence,man.mid);
                strcat(Stence,"'");
                query_cmd4=Stence;
                std::cout<<"creating from database..."<<endl;
                try
                {
                    m_pConnection->Open(strConnect,"","",adModeUnknown);
                    if(m_pConnection==NULL)
                        cerr<<"Lind data ERROR!n";
                    _variant_t vcid,vmname,vmcity,vbid; //对应库中的cid,cname,city,discnt

                        // 取得表中的记录
                    m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
                    m_pConnection->Execute(query_cmd4,NULL,1);
                    m_pRecordset->Update();
                    m_pRecordset->Close(); // 关闭记录集
                    std::cout<<"adding from database..."<<endl;
                }
                // 捕捉异常
                catch(_com_error e)
                {
                    // 显示错误信息
                  // cerr << "nERROR:" << (char*)e.Description();//抛出异常
                }
                if(m_pConnection->State)
                    m_pConnection->Close();
                ::CoUninitialize();
                break;
            }//endswich
        }//endwhile
  }
  if(n==5){
        _bstr_t bstrSQL("select * from bank"); //查询语句,表stu_info
        m=0;
        while (m <= 4)
        {
            cout << "1查询" << endl;
            cout << "2删除" << endl;
            cout << "3增加" << endl;
            cout << "4修改" << endl;
            cout << "请选择操作的菜单号:";
            cin >> m;
            cout << endl;
            char *query_cmd5;
            char *query_cmd6;
            char *query_cmd7;
            switch (m)
            {
            case 1:
                try
                {
                    m_pConnection->Open(strConnect, "", "", adModeUnknown);
                    if (m_pConnection == NULL)
                        cerr << "Lind data ERROR!n";
                    _variant_t vbid, vcard_type, vaddress, vasset; //对应库中的cid,cname,city,discnt

                    while (1)
                    {
                        // 取得表中的记录
                        m_pRecordset->Open(bstrSQL, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
                        cout << "Bid              Card_type              Address              Asset \n";
                        cout << "n----------------------------------------------------------------n\n";
                        while (!m_pRecordset->EndOfFile)
                        {
                            vbid = m_pRecordset->GetCollect(_variant_t((long)0));
                            vcard_type = m_pRecordset->GetCollect("card_type");
                            vaddress = m_pRecordset->GetCollect("address");
                            vasset = m_pRecordset->GetCollect("asset");
                            if (vbid.vt != VT_NULL && vcard_type.vt != VT_NULL && vaddress.vt != VT_NULL && vasset.vt != VT_NULL)
                            {
                                cout.setf(ios::left);
                                cout << setw(20) << (char*)(_bstr_t)vbid;
                                cout << setw(20) << (char*)(_bstr_t)vcard_type;
                                cout << setw(15) << (char*)(_bstr_t)vaddress;
                                cout << setw(20) << (char*)(_bstr_t)vasset;
                                cout.unsetf(ios::left);
                                cout << endl;
                            }
                            m_pRecordset->MoveNext(); ///移到下一条记录
                        }
                        cout << "n----------------------------------------------------------------n\n";
                        m_pRecordset->Update();
                        //m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除
                        m_pRecordset->Close(); // 关闭记录集
                    }
                }
                // 捕捉异常
                catch (_com_error e)
                {
                    // 显示错误信息
                    // cerr << "nERROR:" << (char*)e.Description();//抛出异常
                }
                if (m_pConnection->State)
                    m_pConnection->Close();
                ::CoUninitialize();
                break;
            case 2:
                cout << "输出删除的bid:";
                cin >> ban.bid;
                strcpy(Stence, "delete from bank where bid ='");
                strcat(Stence, ban.bid);
                strcat(Stence, "'");
                query_cmd5 = Stence;
                std::cout << "creating from database..." << endl;
                try
                {
                    m_pConnection->Open(strConnect, "", "", adModeUnknown);
                    if (m_pConnection == NULL)
                        cerr << "Lind data ERROR!n";
                    _variant_t vbid, vcard_type, vaddress, vasset; //对应库中的cid,cname,city,discnt

                    m_pRecordset->Open(bstrSQL, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);

                    m_pConnection->Execute(query_cmd5, NULL, 1); //用Execute执行sql语句来删除
                    m_pRecordset->Update();
                    m_pRecordset->Close(); // 关闭记录集
                    std::cout << "deleting from database..." << endl;
                }
                // 捕捉异常
                catch (_com_error e)
                {
                    // 显示错误信息
                    // cerr << "nERROR:" << (char*)e.Description();//抛出异常
                }
                if (m_pConnection->State)
                    m_pConnection->Close();
                ::CoUninitialize();
                break;
            case 3:
                cout << "请输入新增信息(银行编号、银行卡型号、银行位置、银行余额):";
                cin >> ban.bid;
                cin >> ban.card_type;
                cin >> ban.address;
                cin >> ban.asset;
                strcpy(Stence, "insert into bank values('");
                strcat(Stence, ban.bid);
                strcat(Stence, "','");
                strcat(Stence, ban.card_type);
                strcat(Stence, "','");
                strcat(Stence, ban.address);
                strcat(Stence, "','");
                strcat(Stence, ban.asset);
                strcat(Stence, "')");
                query_cmd6 = Stence;
                std::cout << "creating from database..." << endl;
                try
                {
                    m_pConnection->Open(strConnect, "", "", adModeUnknown);
                    if (m_pConnection == NULL)
                        cerr << "Lind data ERROR!n";
                    _variant_t vbid, vcard_type, vaddress, vasset; //对应库中的cid,cname,city,discnt

                    // 取得表中的记录
                    m_pRecordset->Open(bstrSQL, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
                    m_pConnection->Execute(query_cmd6, NULL, 1);
                    m_pRecordset->Update();
                    m_pRecordset->Close(); // 关闭记录集
                    std::cout << "adding from database..." << endl;
                }
                // 捕捉异常
                catch (_com_error e)
                {
                    // 显示错误信息
                    // cerr << "nERROR:" << (char*)e.Description();//抛出异常
                }
                if (m_pConnection->State)
                    m_pConnection->Close();
                ::CoUninitialize();
                break;
            case 4:
                cout << "请输入需要修改的bid:";

                cin >> ban.bid;
                cout<<"请输入修改的卡类型,地址,银行余额:";
                cin >> ban.card_type;
                cin >> ban.address;
                cin >> ban.asset;
                strcpy(Stence, "update bank set card_type='");
                strcat(Stence, ban.card_type);
                strcat(Stence, "',address='");
                strcat(Stence, ban.address);
                strcat(Stence, "',asset='");
                strcat(Stence, ban.asset);
                strcat(Stence, "'where bid='");
                strcat(Stence, ban.bid);
                strcat(Stence, "'");
                query_cmd7 = Stence;
                std::cout << "creating from database..." << endl;
                try
                {
                    m_pConnection->Open(strConnect, "", "", adModeUnknown);
                    if (m_pConnection == NULL)
                        cerr << "Lind data ERROR!n";
                    _variant_t vbid, vcard_type, vaddress, vasset; //对应库中的cid,cname,city,discnt

                    // 取得表中的记录
                    m_pRecordset->Open(bstrSQL, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
                    m_pConnection->Execute(query_cmd7, NULL, 1);
                    m_pRecordset->Update();
                    m_pRecordset->Close(); // 关闭记录集
                    std::cout << "adding from database..." << endl;
                }
                // 捕捉异常
                catch (_com_error e)
                {
                    // 显示错误信息
                    // cerr << "nERROR:" << (char*)e.Description();//抛出异常
                }
                if (m_pConnection->State)
                    m_pConnection->Close();
                ::CoUninitialize();
                break;
            }//endswich
        }//endwhile
  }
  if(n==3){
      _bstr_t bstrSQL("select * from fund_bill"); //查询语句,表stu_info
    m=0;
    while(m<=4)
    {
        cout<<"1查询"<<endl;
        cout<<"2删除"<<endl;
        cout<<"3增加"<<endl;
        cout<<"4修改"<<endl;
        cout<<"请选择操作的菜单号:";
        cin>>m;
        cout<<endl;
        char *query_cmd11;
        char *query_cmd12;
        char *query_cmd13;
        switch(m)
        {
        case 1:
            try
            {
                m_pConnection->Open(strConnect,"","",adModeUnknown);
                if(m_pConnection==NULL)
                    cerr<<"Lind data ERROR!n";
                _variant_t vcard_no,vmid,vcid,vfortune_amount,vdeposite_date; //对应库中的cid,cname,city,discnt

                while(1)
                {
                    // 取得表中的记录
                    m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
                    cout << "card_no       mid   cid      fortune_amount      deposite_date \n";
                    cout<<"n----------------------------------------------------------------n\n";
                    while (!m_pRecordset->EndOfFile)
                    {
                        vcard_no = m_pRecordset->GetCollect(_variant_t((long)0));
                        vmid = m_pRecordset->GetCollect("mid");
                        vcid = m_pRecordset->GetCollect("cid");
                        vfortune_amount = m_pRecordset->GetCollect("fortune_amount");
                        vdeposite_date = m_pRecordset->GetCollect("deposite_date");
                        if (vcard_no.vt != VT_NULL && vmid.vt != VT_NULL && vcid.vt != VT_NULL && vdeposite_date.vt != VT_NULL && vfortune_amount.vt != VT_NULL )
                        {
                            cout.setf(ios::left);
                            cout << setw(10) << (char*)(_bstr_t)vcard_no;
                            cout << setw(10) << (char*)(_bstr_t)vmid;
                            cout << setw(8) << (char*)(_bstr_t)vcid;
                            cout <<setw(20) << (char*)(_bstr_t)vfortune_amount;
                            cout <<setw(20) << (char*)(_bstr_t)vdeposite_date;

                            cout.unsetf(ios::left);
                            cout << endl;
                        }
                        m_pRecordset->MoveNext(); ///移到下一条记录
                    }
                    cout << "n----------------------------------------------------------------n\n";
                    m_pRecordset->Update();
                    //m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除
                    m_pRecordset->Close(); // 关闭记录集
                }
            }
            // 捕捉异常
            catch(_com_error e)
            {
                // 显示错误信息
              // cerr << "nERROR:" << (char*)e.Description();//抛出异常
            }
            if(m_pConnection->State)
                m_pConnection->Close();
            ::CoUninitialize();
            break;
        case 2:
            cout<<"输入删除的card_no:";
            cin>>fund.card_no;
            strcpy(Stence,"delete from fund_bill where card_no ='");
            strcat(Stence,fund.card_no);
            strcat(Stence,"'");
            query_cmd11=Stence;
            std::cout<<"creating from database..."<<endl;
            try
            {
                m_pConnection->Open(strConnect,"","",adModeUnknown);
                if(m_pConnection==NULL)
                    cerr<<"Lind data ERROR!n";
                _variant_t vcard_no,vmid,vcid,vfortune_amount,vdeposite_date; //对应库中的cid,cname,city,discnt

                m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

                m_pConnection->Execute(query_cmd11,NULL,1); //用Execute执行sql语句来删除
                m_pRecordset->Update();
                m_pRecordset->Close(); // 关闭记录集
                std::cout<<"deleting from database..."<<endl;
            }
            // 捕捉异常
            catch(_com_error e)
            {
                // 显示错误信息
              // cerr << "nERROR:" << (char*)e.Description();//抛出异常
            }
            if(m_pConnection->State)
                m_pConnection->Close();
            ::CoUninitialize();
            break;
        case 3:
            cout<<"请输入新增信息(卡号、经理编号、客户编号、存款数、存款日期):";
            cin>>fund.card_no;
            cin>>fund.mid;
            cin>>fund.cid;
            cin>>fund.fortune_amount;
            cin>>fund.deposite_date;
            strcpy(Stence,"insert into fund_bill values('");
            strcat(Stence,fund.card_no);
            strcat(Stence,"','");
            strcat(Stence,fund.mid);
            strcat(Stence,"','");
            strcat(Stence,fund.cid);
            strcat(Stence,"','");
            strcat(Stence,fund.fortune_amount);
            strcat(Stence,"','");
            strcat(Stence,fund.deposite_date);
            strcat(Stence,"')");

            query_cmd12=Stence;
            std::cout<<"creating from database..."<<endl;
            try
            {
                m_pConnection->Open(strConnect,"","",adModeUnknown);
                if(m_pConnection==NULL)
                    cerr<<"Lind data ERROR!n";
                _variant_t vcard_no,vmid,vcid,vfortune_amount,vdeposite_date; //对应库中的cid,cname,city,discnt

                    // 取得表中的记录
                m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
                m_pConnection->Execute(query_cmd12,NULL,1);
                m_pRecordset->Update();
                m_pRecordset->Close(); // 关闭记录集
                std::cout<<"adding from database..."<<endl;
            }
            // 捕捉异常
            catch(_com_error e)
            {
                // 显示错误信息
              // cerr << "nERROR:" << (char*)e.Description();//抛出异常
            }
            if(m_pConnection->State)
                m_pConnection->Close();
            ::CoUninitialize();
            break;
        case 4:
            cout<<"请输入需要修改的card_no:";
            cin>>fund.card_no;
            cout<<"请输入修改的经理编号,客户编号,存款,存款日期:";
            cin>>fund.mid;
            cin>>fund.cid;
            cin>>fund.fortune_amount;
            cin>>fund.deposite_date;

            strcpy(Stence,"update fund_bill set card_no='");
            strcat(Stence,fund.card_no);
            strcat(Stence,"',mid='");
            strcat(Stence,fund.mid);
            strcat(Stence,"',cid='");
            strcat(Stence,fund.cid);
            strcat(Stence,"',fortune_amount='");
            strcat(Stence,fund.fortune_amount);
            strcat(Stence,"'where desposite_date='");
            strcat(Stence,"'");
            query_cmd13=Stence;
            std::cout<<"creating from database..."<<endl;
            try
            {
                m_pConnection->Open(strConnect,"","",adModeUnknown);
                if(m_pConnection==NULL)
                    cerr<<"Lind data ERROR!n";
                _variant_t vcard_no,vmid,vcid,vfortune_amount,vdeposite_date; //对应库中的cid,cname,city,discnt

                    // 取得表中的记录
                m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
                m_pConnection->Execute(query_cmd13,NULL,1);
                m_pRecordset->Update();
                m_pRecordset->Close(); // 关闭记录集
                std::cout<<"adding from database..."<<endl;
            }
            // 捕捉异常
            catch(_com_error e)
            {
                // 显示错误信息
              // cerr << "nERROR:" << (char*)e.Description();//抛出异常
            }
            if(m_pConnection->State)
                m_pConnection->Close();
            ::CoUninitialize();
            break;
        }//endswich
    }//endwhile


  }
  if(n==4){
    m=0;
    _bstr_t bstrSQL("select * from draw_bill"); //查询语句,表stu_info
    while(m<=4)
    {
        cout<<"1查询"<<endl;
        cout<<"2删除"<<endl;
        cout<<"3增加"<<endl;
        cout<<"4修改"<<endl;
        cout<<"请选择操作的菜单号:";
        cin>>m;
        cout<<endl;
        char *query_cmd8;
        char *query_cmd9;
        char *query_cmd10;
        switch(m)
        {
        case 1:
            try
            {
                m_pConnection->Open(strConnect,"","",adModeUnknown);
                if(m_pConnection==NULL)
                    cerr<<"Lind data ERROR!n";
                _variant_t vcard_no,vcid,vmid,vdraw_money,vdraw_date,vrest_money,vrate; //对应库中的cid,cname,city,discnt

                while(1)
                {
                    // 取得表中的记录
                    m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
                    cout << "Card_no     Cid     Mid     Draw_money      Draw_date      Rest_money     Rate\n";
                    cout<<"n-----------------------------------------------------------------------n\n";
                    while (!m_pRecordset->EndOfFile)
                    {
                        vcard_no = m_pRecordset->GetCollect(_variant_t((long)0));
                        vcid = m_pRecordset->GetCollect("cid");
                        vmid = m_pRecordset->GetCollect("mid");
                        vdraw_money = m_pRecordset->GetCollect("draw_money");
                        vdraw_date = m_pRecordset->GetCollect("draw_date");
                        vrest_money = m_pRecordset->GetCollect("rest_money");
                        vrate = m_pRecordset->GetCollect("rate");

                        if (vcard_no.vt != VT_NULL && vcid.vt != VT_NULL && vmid.vt != VT_NULL && vdraw_money.vt != VT_NULL&& vdraw_date.vt != VT_NULL && vrest_money.vt != VT_NULL && vrate.vt != VT_NULL )
                        {
                            cout.setf(ios::left);
                            cout << setw(10) << (char*)(_bstr_t)vcard_no;
                            cout << setw(10) << (char*)(_bstr_t)vcid;
                            cout << setw(10) << (char*)(_bstr_t)vmid;
                            cout << setw(10) << (char*)(_bstr_t)vdraw_money;
                            cout <<setw(20) << (char*)(_bstr_t)vdraw_date;
                            cout << setw(15) << (char*)(_bstr_t)vrest_money;
                             cout << setw(10) << (char*)(_bstr_t)vrate;
                            cout.unsetf(ios::left);
                            cout << endl;
                        }
                        m_pRecordset->MoveNext(); ///移到下一条记录
                    }
                    cout << "n-----------------------------------------------------------------------n\n";
                    m_pRecordset->Update();
                    //m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除
                    m_pRecordset->Close(); // 关闭记录集
                }
            }
            // 捕捉异常
            catch(_com_error e)
            {
                // 显示错误信息
              // cerr << "nERROR:" << (char*)e.Description();//抛出异常
            }
            if(m_pConnection->State)
                m_pConnection->Close();
            ::CoUninitialize();
            break;
        case 2:
            cout<<"输出删除的card_no:";
            cin>>draw.card_no;
            strcpy(Stence,"delete from draw_bill where card_no ='");
            strcat(Stence,draw.card_no);
            strcat(Stence,"'");
            query_cmd8=Stence;
            std::cout<<"creating from database..."<<endl;
            try
            {
                m_pConnection->Open(strConnect,"","",adModeUnknown);
                if(m_pConnection==NULL)
                    cerr<<"Lind data ERROR!n";
                _variant_t vcard_no,vcid ,vmid,vdraw_money,vdraw_date,vrest_money,vrate; //对应库中的cid,cname,city,discnt

                m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

                m_pConnection->Execute(query_cmd8,NULL,1); //用Execute执行sql语句来删除
                m_pRecordset->Update();
                m_pRecordset->Close(); // 关闭记录集
                std::cout<<"deleting from database..."<<endl;
            }
            // 捕捉异常
            catch(_com_error e)
            {
                // 显示错误信息
              // cerr << "nERROR:" << (char*)e.Description();//抛出异常
            }
            if(m_pConnection->State)
                m_pConnection->Close();
            ::CoUninitialize();
            break;
        case 3:
            cout<<"请输入新增信息(卡号、用户编号、经理编号、取款金额、取款日期、剩余金额、利息):";
            cin>>draw.card_no;
            cin>>draw.cid;
            cin>>draw.mid;
            cin>>draw.draw_money;
            cin>>draw.draw_date;
            cin>>draw.rest_money;
            cin>>draw.rate;
            strcpy(Stence,"insert into draw_bill values('");
            strcat(Stence,draw.card_no);
            strcat(Stence,"','");
            strcat(Stence,draw.cid);
            strcat(Stence,"','");
            strcat(Stence,draw.mid);
            strcat(Stence,"','");
            strcat(Stence,draw.draw_money);
            strcat(Stence,"','");
            strcat(Stence,draw.draw_date);
            strcat(Stence,"','");
            strcat(Stence,draw.rest_money);
            strcat(Stence,"','");
            strcat(Stence,draw.rate);
            strcat(Stence,"')");
            query_cmd9=Stence;
            std::cout<<"creating from database..."<<endl;
            try
            {
                m_pConnection->Open(strConnect,"","",adModeUnknown);
                if(m_pConnection==NULL)
                    cerr<<"Lind data ERROR!n";
                _variant_t vcard_no,vcid,vmid,vdraw_money,vdraw_date,vrest_money,vrate; //对应库中的cid,cname,city,discnt

                    // 取得表中的记录
                m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
                m_pConnection->Execute(query_cmd9,NULL,1);
                m_pRecordset->Update();
                m_pRecordset->Close(); // 关闭记录集
                std::cout<<"adding from database..."<<endl;
            }
            // 捕捉异常
            catch(_com_error e)
            {
                // 显示错误信息
              // cerr << "nERROR:" << (char*)e.Description();//抛出异常
            }
            if(m_pConnection->State)
                m_pConnection->Close();
            ::CoUninitialize();
            break;
        case 4:
            cout<<"请输入需要修改的card_no:";
            cin>>draw.card_no;
            cout<<"请输入修改的顾客编号 经理编号 取钱数量 取钱日期 余额 利息:";
            cin>>draw.cid;
            cin>>draw.mid;
            cin>>draw.draw_money;
            cin>>draw.draw_date;
            cin>>draw.rest_money;
            cin>>draw.rate;
            strcpy(Stence,"update draw_bill set cid='");
            strcat(Stence,draw.cid);
            strcat(Stence,"',mid='");
            strcat(Stence,draw.mid);
            strcat(Stence,"',draw_money='");
            strcat(Stence,draw.draw_money);
            strcat(Stence,"',draw_date='");
            strcat(Stence,draw.draw_date);

            strcat(Stence,"',rest_money='");
            strcat(Stence,draw.rest_money);
            strcat(Stence,"',rate='");
            strcat(Stence,draw.rate);
            strcat(Stence,"'where card_no='");
            strcat(Stence,draw.card_no);
            strcat(Stence,"'");
            query_cmd10=Stence;
            std::cout<<"creating from database..."<<endl;
            try
            {
                m_pConnection->Open(strConnect,"","",adModeUnknown);
                if(m_pConnection==NULL)
                    cerr<<"Lind data ERROR!n";
                _variant_t vcard_no,vcid,vmid,vdraw_money,vdraw_date,vrest_money,vrate; //对应库中的cid,cname,city,discnt

                    // 取得表中的记录
                m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
                m_pConnection->Execute(query_cmd10,NULL,1);
                m_pRecordset->Update();
                m_pRecordset->Close(); // 关闭记录集
                std::cout<<"adding from database..."<<endl;
            }
            // 捕捉异常
            catch(_com_error e)
            {
                // 显示错误信息
              // cerr << "nERROR:" << (char*)e.Description();//抛出异常
            }
            if(m_pConnection->State)
                m_pConnection->Close();
            ::CoUninitialize();
            break;
        }//endswich
    }//endwhile

  }//endif
}//endwhile(n)
    return 0;
}