VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 171|回复: 6

关于记录集对象添加记录

[复制链接]
10_avatar_middle
最佳答案
0 
donate_vip 发表于 2020-4-6 18:56:18 | 显示全部楼层 |阅读模式
51_avatar_middle
最佳答案
82 
online_admins 发表于 2020-4-6 19:04:57 | 显示全部楼层
点击“租给他”按钮的响应函数贴出来看看
或者工程代码要是方便的话清理下发上来,光看这个截图确定不了问题
10_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-4-6 19:06:28 | 显示全部楼层
Syc 发表于 2020-4-6 19:04
点击“租给他”按钮的响应函数贴出来看看
或者工程代码要是方便的话清理下发上来,光看这个截图确定不了问 ...
  1. ③、使用记录集对象添加记录:
  2. BOOL CRentDVDDlg::RentDVDByRecordset(CString& strDVDID, CString& strRentName, CString& strRentDate)
  3. {
  4.         BOOL bRet = FALSE;
  5.         _RecordsetPtr pRentRecordset;
  6.         pRentRecordset.CreateInstance(__uuidof(Recordset));
  7.         try {
  8.                 HRESULT hr = pRentRecordset->Open(
  9.                         _T("select * from tbRentInfo"),
  10.                         m_pConnection.GetInterfacePtr(),
  11.                         adOpenDynamic,
  12.                         adLockOptimistic,
  13.                         adCmdText);

  14.                 if(SUCCEEDED(hr))
  15.                 {
  16.                         pRentRecordset->AddNew();
  17.                         pRentRecordset->PutCollect("sDVDID",_variant_t(strDVDID));
  18.                         pRentRecordset->PutCollect("sName",_variant_t(strRentName));
  19.                         pRentRecordset->PutCollect("sDate",_variant_t(strRentDate));
  20.                         pRentRecordset->Update();
  21.                         bRet = TRUE;
  22.                 }
  23.         } catch(_com_error *e) {
  24.                 MessageBox(e->ErrorMessage());
  25.         }  

  26.         pRentRecordset->Close();
  27.         pRentRecordset = NULL;
  28.         return bRet;
  29. }
  30. ===================================================
  31. ④、按钮响应函数调用 RentDVDByRecordset 实现租用功能:
  32. void CRentDVDDlg::OnBnClickedButtonRentit()
  33. {
  34.         UpdateData(TRUE);
  35.         CString strDVDID, strDate;

  36.         GetDlgItem(IDC_DATE_RENT)->GetWindowText(strDate);

  37.         int sel = m_DVDInfoList.GetSelectionMark();
  38.         if(sel < 0)
  39.         {
  40.                 MessageBox(_T("请选择要租借的DVD."));
  41.                 return;
  42.         }else{
  43.                 strDVDID = m_DVDInfoList.GetItemText(sel, 0);
  44.         }

  45.         CString strLeftNum = m_DVDInfoList.GetItemText(sel, 2);
  46.         int iLeftNum = _ttoi(strLeftNum);
  47.         if(iLeftNum <= 0)
  48.         {
  49.                 MessageBox(_T("不好意思,该DVD已经没有存货了."));
  50.                 return;
  51.         }

  52.         if(m_rentName.IsEmpty())
  53.         {
  54.                 MessageBox(_T("请填写租借人的姓名."), _T("提示"), MB_OK|MB_ICONINFORMATION);
  55.                 m_editRentName.SetFocus();
  56.                 return;
  57.         }

  58.         BOOL bRet = RentDVDByRecordset(strDVDID, m_rentName, strDate);
  59.         //BOOL bRet = RentDVDByCommand(strDVDID, m_rentName, strDate);
  60.         if (TRUE == bRet) {
  61.                 m_bRent = TRUE;
  62.                 CRentMgrDlg *pParentWnd = (CRentMgrDlg *)GetParent();
  63.                 pParentWnd->ModDVDNum(strDVDID, -1);
  64.                 MessageBox(_T("租借成功!"), _T("提示"), MB_OK);
  65.         }
  66. }
复制代码
51_avatar_middle
最佳答案
82 
online_admins 发表于 2020-4-6 19:10:12 | 显示全部楼层

租用按钮的响应函数 CRentDVDDlg::OnBnClickedButtonRentit 中,根本没有对 租借人姓名的变量 m_rentName 赋值啊,之后就直接判断 if(m_rentName.IsEmpty()) 了,所以肯定不行!

看看是不是少了 类似 GetDlgItem(IDC_DATE_RENT)->GetWindowText(strDate); 的代码,这个是获取日期的,应该还有个获取租借人的代码的,检查下课程的代码
10_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-4-6 19:16:18 | 显示全部楼层
Syc 发表于 2020-4-6 19:10
租用按钮的响应函数 CRentDVDDlg::OnBnClickedButtonRentit 中,根本没有对 租借人姓名的变量 m_rentName ...

您视频里说给“租借人”的编辑框绑定的了CString m_rentName变量,所以不用特意获取,直接调用updatedata就行,代码只有这么多
51_avatar_middle
最佳答案
82 
online_admins 发表于 2020-4-6 19:22:17 | 显示全部楼层
chenjiawei666 发表于 2020-4-6 19:16
您视频里说给“租借人”的编辑框绑定的了CString m_rentName变量,所以不用特意获取,直接调用updatedata ...


嗯,知道了。m_rentName 是绑定给了 IDC_EDIT_RENT_NAME 编辑框的变量。所以调用下UpdateData(TRUE); 就可以了。那么就需要楼主确认下 m_rentName  是否绑定成功了?
关于记录集对象添加记录
10_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-4-6 19:31:49 | 显示全部楼层
Syc 发表于 2020-4-6 19:22
嗯,知道了。m_rentName 是绑定给了 IDC_EDIT_RENT_NAME 编辑框的变量。所以调用下UpdateData(TRUE);  ...

麻烦问下这个租借日期的下拉框是绑定什么类型的变量
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-11-1 05:24

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表