none
VC++ 6.0中向数据库添加记录的类型问题 RRS feed

  • 问题

  • 这几天在写做图书管理的程序

    其中有一个模块是添加一本书到数据库中的模块,已经将数据库中的图书记录集加入到工程中

    class CBookRs : public CRecordset
    {
    public:
    	CBookRs(CDatabase* pDatabase = NULL);
    	DECLARE_DYNAMIC(CBookRs)
    
    // Field/Param Data
    	//{{AFX_FIELD(CBookRs, CRecordset)
    	CString	m_bno;
    	CString	m_category;
    	CString	m_title;
    	CString	m_press;
    	long	m_year;
    	CString	m_author;
    	CString	m_price;
    	long	m_total;
    	long	m_stock;
    	//}}AFX_FIELD
     //下面的就省略了
    }

    然后添加了一个添加图书的对话框,下面是变量的定义

    //bookenroll.cpp
    CBookEnrollDlg::CBookEnrollDlg(CWnd* pParent /*=NULL*/)
    	: CDialog(CBookEnrollDlg::IDD, pParent)
    {
    	//{{AFX_DATA_INIT(CBookEnrollDlg)
    	m_author = _T("");
    	m_bno = _T("");
    	m_category = _T("");
    	m_press = _T("");
    	m_price = 6.2f;
    	m_stock = _T("");
    	m_title = _T("");
    	m_total = _T("");
    	m_year = _T("");
    	//}}AFX_DATA_INIT
    }
    
    
    void CBookEnrollDlg::DoDataExchange(CDataExchange* pDX)
    {
    	CDialog::DoDataExchange(pDX);
    	//{{AFX_DATA_MAP(CBookEnrollDlg)
    	DDX_Text(pDX, IDC_AUTHOR, m_author);
    	DDX_Text(pDX, IDC_BOOK_NUM, m_bno);
    	DDX_Text(pDX, IDC_CATEGORY, m_category);
    	DDX_Text(pDX, IDC_PRESS, m_press);
    	DDX_Text(pDX, IDC_PRICE, m_price);
    	DDX_Text(pDX, IDC_STOCK, m_stock);
    	DDX_Text(pDX, IDC_TITLE, m_title);
    	DDX_Text(pDX, IDC_TOTAL, m_total);
    	DDX_Text(pDX, IDC_YEAR, m_year);
    	//}}AFX_DATA_MAP
    }
    //省略了
    
    class CBookEnrollDlg : public CDialog
    {
    // Construction
    public:
    	CBookEnrollDlg(CWnd* pParent = NULL);  // standard constructor
    
    // Dialog Data
    	//{{AFX_DATA(CBookEnrollDlg)
    	enum { IDD = IDD_BOOK_ENROLL };
    	CString	m_author;
    	CString	m_bno;
    	CString	m_category;
    	CString	m_press;
    	float	m_price;
    	long	m_stock;
    	CString	m_title;
    	long	m_total;
    	long	m_year;
    	//}}AFX_DATA
    //省略后面的
    }

    我知道问题是类型不匹配

    具体原因是我的数据集中的三栏m_total,m_stock和m_year都是long类型

    然后我的图书添加模块中的类型和这三个的类型匹配不起来

    不知道应该怎么修改,也应该怎么在msdn上面搜索,就来到这里向各位请教

    应该怎么改才能够让三个的类型匹配

    谢谢先了

     

    2010年4月19日 6:42

答案

  • 你是说,用户输入进来的是字符串,但是你不知道怎么把字符串赋值给long m_year 变量吗? 可以使用atol函数或者_wtol函数(Unicode 版本)

    • 已标记为答案 Yichao 2010年4月19日 11:39
    2010年4月19日 11:18
    版主

全部回复