我有一个对话框 里面有一个date time picker控件 现在我在视类的成员函数中创建了对话框的对象 想在对话框的date time picker中输入日期 然后把这个日期保存在SQL中 结果一直出错 不管我对话框日期设置成什么查询数据库保存的日期一直就是1899-12-30 直接打开数据库看里面是“上午 12:00:00” date time picker控件的类型是CDateTimeCtrl 关联变量是m_strTime Format形式是short time 数据库日期字段是datetime 感觉m_strTime没有与我的选择日期连上 可是void CSocietyRegDlg::DoDataExchange(CDataExchange* pDX){DDX_Control(pDX, IDC_DATETIMEPICKER, m_strTime);} 不知道为什么 这个问题弄了两天了 各位高手帮帮忙啊
在对话框的BOOL CSocietyRegDlg::OnInitDialog() 
{ CDialog::OnInitDialog();
         CTime time;
time = CTime::GetCurrentTime();
m_strTime.SetTime(&time); 
         return TRUE; 
}
让控件默认值是系统当前日期
在视类成员函数中
void CADODemoView::OnSocietyRegister() 
{
// TODO: Add your command handler code here    CSocietyRegDlg SocietyRegDlg;
if(IDOK == SocietyRegDlg.DoModal())
{
UpdateData(TRUE); 
if(!m_fConnected) cout<<"连接不成功"<<endl;
CString SQl="SELECT * FROM 测点";
_bstr_t query1 =SQl;
_bstr_t source =  m_strSource;
try 

m_recordset->Open(query1,source, adOpenDynamic,adLockOptimistic,adCmdText);
m_recordset->AddNew();
m_recordset->PutCollect("监测开始时间",_variant_t(SocietyRegDlg.m_strTime));
m_recordset->Update(); 
m_recordset->Close(); 
AfxMessageBox("测点添加成功!"); 

}

catch(_com_error e) 

MessageBox(e.Description());


}

解决方案 »

  1.   

    想在对话框的date time picker中输入日期 然后把这个日期保存在SQL中:输入日期的编辑框,要一个响应函数数据修改的函数,其中加上CTime time;
    time = CTime::GetCurrentTime();
    m_strTime.SetTime(&time);  
    UpdateData(TRUE)然后就是m_strTime的数据类型要注意了。
      

  2.   

    那这个响应函数在类向导的消息映射中加吗?选择哪个消息呢 datetimechange吗? 我添加了这个消息后对话框的日期选不了了
      

  3.   

    我弄好了 在datetimechange消息中只要加UpdateData(TRUE);就可以了 我把控件的类型改成CTime了
    OnInitDialog() 函数直接m_strTime= CTime::GetCurrentTime();再在void CADODemoView::OnExpenseRegister() 中将m_strTime的值改成合适的形式传给数据库就可以了