CString好象不能当作Format的参数,否则会执行非法操作 pcstatus.m_strFilter.Format("[user_date]>'%s' AND [user_date]<'%s'",fromtime,totime); 改为 pcstatus.m_strFilter=pcstatus.m_strFilter'"+fromtime+"' AND [user_date]<'"+totime;
[user_date],是日期型的字段吧。日期型字段查询如下 fromtime = m_fromtime.Format("%Y-%m-%d"); totime = m_totime.Format("%Y-%m-%d"); pcstatus.m_strFilter.Format("[user_date]>'%s' AND [user_date] ^ <'s'",fromtime,totime); //标记出修正。 ^ pcstatus.m_strFilter.Format("[表名].[user_date]>#%s# AND [表名].[user_date]<#%s#,fromtime,totime); 注意,你的字段前没有表名,需添加表名。日期型的转换用#.
是什么啊你写的不全啊
把代码写出来啊
我把代码帖出来void CMonth::OnSearch()
{
// TODO: Add your control notification handler code here
UpdateData(true);
m_ListCtrl.DeleteAllItems();
CString fromtime,totime;
if (!pcstatus.IsOpen())
{
pcstatus.Open();
}
fromtime = m_fromtime.Format("%Y-%m-%d");
totime = m_totime.Format("%Y-%m-%d");
pcstatus.m_strFilter.Format("[user_date]>'%s' AND [user_date]<'%s'",fromtime,totime);
AfxMessageBox(fromtime,MB_OK);
AfxMessageBox(totime,MB_OK);
if(!pcstatus.IsEOF())
pcstatus.MoveFirst();
pcstatus.Requery();
if(pcstatus.IsEOF())
{
AfxMessageBox("没有符合条件的记录");
pcstatus.Close();
return ;
}
else
{
int i= 0;
do
{
CString s;
m_ListCtrl.InsertItem(i,pcstatus.m_user_date+" "+pcstatus.m_user_time,0);
s.Format("%.2f",pcstatus.m_user_fee);
m_ListCtrl.SetItemText(i,1,s);
pcstatus.MoveNext();
i++;
}
while(!pcstatus.IsEOF());
pcstatus.Close();
}
}
是什么啊..ADO.还是数据集啊
pcstatus.m_strFilter.Format("[user_date]>'%s' AND [user_date]<'%s'",fromtime,totime);
改为
pcstatus.m_strFilter=pcstatus.m_strFilter'"+fromtime+"' AND [user_date]<'"+totime;
fromtime = m_fromtime.Format("%Y-%m-%d");
totime = m_totime.Format("%Y-%m-%d");
pcstatus.m_strFilter.Format("[user_date]>'%s' AND [user_date]
^
<'s'",fromtime,totime); //标记出修正。
^
pcstatus.m_strFilter.Format("[表名].[user_date]>#%s# AND [表名].[user_date]<#%s#,fromtime,totime);
注意,你的字段前没有表名,需添加表名。日期型的转换用#.
的记录,可是效果不佳比方说我要查2003-5的记录,fromtime="2003-5-1";totime="2003-5-30",找到的记录是空的,那位能想想办法?
不会吧,是字符型?那怎么查询一个时间段呢?
我也正好做到日期查询的问题,用我那个可以。你先试试。
试一下,我一直这么写