问题描述
- vs 2012 时间无法保持到acces数据库
-
请教下大家:rs.m_data = m_strdata;//此时间空间无法添加到数据库
代码如下:void CCteFormView::OnBnClickedSave()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData();
CcteSet rs;rs.Open(); rs.AddNew(); rs.m_data = m_strdata;//此时间空间无法添加到数据库 rs.m_name=m_strname; rs.m_luhao=m_strluhao; rs.m_liaose=m_strliaose; 错误提示如下: d:myfilevisual studio 2012projectsxuglassformxuglassformcteformview.cpp(269): error C2679: 二进制“=”: 没有找到接受“CDateTimeCtrl”类型的右操作数的运算符(或没有可接受的转换)
1> d:program files (x86)microsoft visual studio 11.0vcatlmfcincludeatltime.h(123): 可能是“ATL::CTime &ATL::CTime::operator =(__time64_t) throw()”
1> d:program files (x86)microsoft visual studio 11.0vcatlmfcincludeatltime.h(173): 或 “ATL::CTime &ATL::CTime::operator =(const ATL::CTime &)”
1> 尝试匹配参数列表“(ATL::CTime, CDateTimeCtrl)”时
解决方案
rs.m_data = m_strdata;
左右类型不匹配,检查下可能一个是CDateTimeCtrl控件,一个是时间字段,需要转换下。
具体你的类型是什么要看完整代码
参考:http://blog.csdn.net/zmq5411/article/details/6250646
解决方案二:
两个变量类型不能直接转换,没有对应的转换函数。你需要自己先代码转换一下
解决方案三:
谢谢指教,是的,就是CDateTimeCtrl控件,日期控件。
解决方案四:
谢谢楼上两位!在rs文件中是这样的:请帮我想想看要如何来处理呢,
void CCteFormView::UpdateList(CcteSet &rs)
{
m_ctrList.SetItemText(i, 1, (LPCTSTR)(CString)rs.m_data.Format("%Y-%m-%d"));
m_ctrList.SetItemText(i, 2, (LPCTSTR)(CString)rs.m_name);
m_ctrList.SetItemText(i, 3, (LPCTSTR)(CString)rs.m_luhao);
......
在保存时是这样的:
void CCteFormView::OnBnClickedSave()
{
UpdateData();
CcteSet rs;
rs.Open();
rs.AddNew();
rs.m_data = m_strdata;//此时间空间无法添加到数据库
rs.m_name=m_strname;
rs.m_luhao=m_strluhao;
rs.m_liaose=m_strliaose;
......