void chuku::Onluru() 
{
// TODO: Add your control notification handler code here
UpdateData();
         CDatabase m_db;  //定义一个数据库类的对象
  CString strConnect;
  CString m_bDSN="yiyao";
strConnect.Format("DSN=%s",m_bDSN);
  m_db.OpenEx(strConnect,CDatabase::noOdbcDialog);
         
         CString sql;

  sql.Format("insert into 药品出库表 (id,name,shuliang,riqi) VALUES('%s','%s','%s','%s')",m_id,m_yaoname,m_shuliang,m_riqi);
m_db.ExecuteSQL(sql);
}
加上UpdateData();运行就出错,Debug Assertion Failed!

解决方案 »

  1.   

    UpdateData  UpdateData() MFC的窗口函数,下面是MSDN的说明; 
      Call this member function to initialize data in a dialog box, or to retrieve and validate dialog data.
      BOOL UpdateData(
      BOOL bSaveAndValidate = TRUE 
      );ParametersbSaveAndValidate Flag that indicates whether dialog box is being initialized (FALSE)or data is being retrieved (TRUE). 
      翻译一下:UpdateData,顾名思义,是用来刷新数据的。
      UpdateData(TRUE) -- 刷新控件的值到对应的变量
      UpdateData(FALSE) -- 拷贝变量值到控件显示例如,窗口中用 DDX_Text(pDX, IDC_EDIT1, m_usercode); 将IDC_EDIT1编辑框控件与m_usercode变量做了关联,如果修改m_usercode之后要想对应控件显示更改,则需要调用UpdateData(FALSE);反之在IDC_EDIT1的oneditchanged()中需要加入UpdateData(TRUE);
      简单的说,如果Updatedata(TRUE) == 将控件的值赋值给成员变量;
      Updatedata(FALSE) == 将成员变量的值赋值给控件;肯定值有问题呀
      

  2.   

    VALUES('%s','%s','%s','%s')",m_id,m_yaoname,m_shuliang,m_riqi); 应该有问题吧
    VALUES(\'%s\',\'%s\',\'%s\',\'%s\')",m_id,m_yaoname,m_shuliang,m_riqi); 这样看可以吧试一下啊