怎样把获得的系统时间写进数据库的表中 请问我用的是access数据库,ODBC数据源,想在点击登录按钮时将登录的账户和系统时间写进数据库的一个表中,请问我应该在哪里添加代码,添加什么代码? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用类向导生成一个你指定数据库的支持文件,生成的文件里就会包含表中的字段,时间是会是CTime型SYSTEMTIME SystemTime={0}; GetLocalTime(&SystemTime); dbDate = CTime(&SystemTime);http://msdn.microsoft.com/en-us/library/ms187819(v=SQL.90).aspx?PHPSESSID=tn8k5p1s508cop8gr43e1f34d2 在onbutton函数里面添加代码,我也是新手不知道,添加些什么代码 其实你不用那么麻烦,建表时,把存储时间的那个字段(比如叫'LogonTime')的默认值设为now()并且不能为NULL就行了。插入一行数据时,Logontime字段就是当前系统的时间了. 多谢大家指点我已经能获取系统时间了,可是又出现一个问题;我新建了一个表专有三项,来存放用户名,登录时间和退出时间,不过退出时间总是不和前两个在同一行里是为什么?下面是我登录的代码 void chxdl::OnOK() { // TODO: Add extra validation here dlxx m_dlxx; UpdateData(TRUE); yhbiao m_yhbiao; try { if(m_yhbiao.IsOpen()) m_yhbiao.Close(); m_yhbiao.m_strFilter.Format("userID = '%s' and userpwd = '%s'",m_yhzhh,m_yhmm); m_yhbiao.Open(CRecordset::snapshot,NULL,CRecordset::none); if(m_yhbiao.IsEOF()) { m_yhbiao.Close(); AfxMessageBox("密码错误,请重试!"); return; } else { m_yhbiao.Close(); AfxMessageBox("密码正确,登录成功!"); //获取系统时间 CTime m_CurTime = CTime::GetCurrentTime(); //获取当前时间 CTime::GetCurrentTime(); CString m_sYear; CString m_sMonth; CString m_sDay; CString m_sHour; CString m_sMinute; char m_str[20]; itoa(m_CurTime.GetYear(),m_str,10); m_sYear = m_str; itoa(m_CurTime.GetMonth(),m_str,10); m_sMonth = m_str; itoa(m_CurTime.GetDay(),m_str,10); m_sDay = m_str; itoa(m_CurTime.GetHour(),m_str,10); m_sHour = m_str; if(strlen(m_str)==1) //对于时,分,若只有一位,需要在其前面补零 { m_sHour.Insert(0,'0'); } itoa(m_CurTime.GetMinute(),m_str,10); m_sMinute = m_str; if(strlen(m_str)==1) { m_sMinute.Insert(0,'0'); } CString m_CreateTime; m_CreateTime.Format("%s-%s-%s %s:%s",m_sYear,m_sMonth,m_sDay,m_sHour,m_sMinute); //写进表中 m_dlxx.Open(); m_dlxx.AddNew(); m_dlxx.m_userID=m_yhzhh; m_dlxx.m_entertime=m_CreateTime; m_dlxx.Update(); m_dlxx.Close(); } } catch(CDBException*e) { e->ReportError (); e->Delete (); return; } CDialog::OnOK();}这是我退出系统的代码:void CMainFrame::OnExitsystem() //退出系统菜单{ // TODO: Add your command handler code here int t; t=MessageBox("您确定要退出吗?","退出",MB_OKCANCEL|MB_ICONWARNING); if (t==0||t==IDCANCEL) return; if(t==IDOK) PostQuitMessage(0); //退出系统时将用户的退出时间写进表里 dlxx m_dlxx; //下面这段代码生成当前的系统时间 CTime m_CurTime = CTime::GetCurrentTime(); //获取当前时间 CTime::GetCurrentTime(); CString m_sYear; CString m_sMonth; CString m_sDay; CString m_sHour; CString m_sMinute; char m_str[20]; itoa(m_CurTime.GetYear(),m_str,10); m_sYear = m_str; itoa(m_CurTime.GetMonth(),m_str,10); m_sMonth = m_str; itoa(m_CurTime.GetDay(),m_str,10); m_sDay = m_str; itoa(m_CurTime.GetHour(),m_str,10); m_sHour = m_str; if(strlen(m_str)==1) //对于时,分,若只有一位,需要在其前面补零 { m_sHour.Insert(0,'0'); } itoa(m_CurTime.GetMinute(),m_str,10); m_sMinute = m_str; if(strlen(m_str)==1) { m_sMinute.Insert(0,'0'); } CString m_CreateTime; m_CreateTime.Format("%s-%s-%s %s:%s",m_sYear,m_sMonth,m_sDay,m_sHour,m_sMinute); //将采集的时间写进表里 m_dlxx.Open(); m_dlxx.Delete(); m_dlxx.AddNew(); m_dlxx.m_exittime=m_CreateTime; m_dlxx.Update(); m_dlxx.Close();}请大家帮忙看看,怎样让三个量在同一行里面。谢谢了。 退出的时间应该更新到上一个记录中 而不应该用m_dlxx.AddNew()添加新纪录 文本框内容不能更新? 动态界面问题 MFC中引入GDI+,怎么样关闭MESSAGEBOX而不关闭主窗口 怎样实现注册表监控 关于HTML Help Workshop的两个问题 简单问题拉~~~ 先来先拿分吧 在线ing 怎样计算一个应用程序中有多少行代码? 怎么截获视图控件的消息到视图? VC++ 服务程序无法终止 Webbrowser访问某些网页脚本执行部成功的问题(可能是因为跨域) 求操作数据库的代码! 怎么用一种颜色来填充一个圆圈?
SYSTEMTIME SystemTime={0};
GetLocalTime(&SystemTime);
dbDate = CTime(&SystemTime);http://msdn.microsoft.com/en-us/library/ms187819(v=SQL.90).aspx?PHPSESSID=tn8k5p1s508cop8gr43e1f34d2
插入一行数据时,Logontime字段就是当前系统的时间了.
下面是我登录的代码
void chxdl::OnOK()
{
// TODO: Add extra validation here
dlxx m_dlxx;
UpdateData(TRUE);
yhbiao m_yhbiao;
try
{
if(m_yhbiao.IsOpen())
m_yhbiao.Close();
m_yhbiao.m_strFilter.Format("userID = '%s' and userpwd = '%s'",m_yhzhh,m_yhmm);
m_yhbiao.Open(CRecordset::snapshot,NULL,CRecordset::none);
if(m_yhbiao.IsEOF())
{
m_yhbiao.Close();
AfxMessageBox("密码错误,请重试!");
return;
}
else
{
m_yhbiao.Close();
AfxMessageBox("密码正确,登录成功!");
//获取系统时间
CTime m_CurTime = CTime::GetCurrentTime(); //获取当前时间
CTime::GetCurrentTime();
CString m_sYear;
CString m_sMonth;
CString m_sDay;
CString m_sHour;
CString m_sMinute;
char m_str[20];
itoa(m_CurTime.GetYear(),m_str,10);
m_sYear = m_str;
itoa(m_CurTime.GetMonth(),m_str,10);
m_sMonth = m_str;
itoa(m_CurTime.GetDay(),m_str,10);
m_sDay = m_str;
itoa(m_CurTime.GetHour(),m_str,10);
m_sHour = m_str;
if(strlen(m_str)==1) //对于时,分,若只有一位,需要在其前面补零
{
m_sHour.Insert(0,'0');
}
itoa(m_CurTime.GetMinute(),m_str,10);
m_sMinute = m_str;
if(strlen(m_str)==1)
{
m_sMinute.Insert(0,'0');
}
CString m_CreateTime;
m_CreateTime.Format("%s-%s-%s %s:%s",m_sYear,m_sMonth,m_sDay,m_sHour,m_sMinute);
//写进表中
m_dlxx.Open();
m_dlxx.AddNew();
m_dlxx.m_userID=m_yhzhh;
m_dlxx.m_entertime=m_CreateTime;
m_dlxx.Update();
m_dlxx.Close();
}
}
catch(CDBException*e)
{
e->ReportError ();
e->Delete ();
return;
}
CDialog::OnOK();
}这是我退出系统的代码:
void CMainFrame::OnExitsystem() //退出系统菜单
{
// TODO: Add your command handler code here
int t;
t=MessageBox("您确定要退出吗?","退出",MB_OKCANCEL|MB_ICONWARNING);
if (t==0||t==IDCANCEL)
return;
if(t==IDOK)
PostQuitMessage(0);
//退出系统时将用户的退出时间写进表里
dlxx m_dlxx;
//下面这段代码生成当前的系统时间
CTime m_CurTime = CTime::GetCurrentTime(); //获取当前时间
CTime::GetCurrentTime();
CString m_sYear;
CString m_sMonth;
CString m_sDay;
CString m_sHour;
CString m_sMinute;
char m_str[20];
itoa(m_CurTime.GetYear(),m_str,10);
m_sYear = m_str;
itoa(m_CurTime.GetMonth(),m_str,10);
m_sMonth = m_str;
itoa(m_CurTime.GetDay(),m_str,10);
m_sDay = m_str;
itoa(m_CurTime.GetHour(),m_str,10);
m_sHour = m_str;
if(strlen(m_str)==1) //对于时,分,若只有一位,需要在其前面补零
{
m_sHour.Insert(0,'0');
}
itoa(m_CurTime.GetMinute(),m_str,10);
m_sMinute = m_str;
if(strlen(m_str)==1)
{
m_sMinute.Insert(0,'0');
}
CString m_CreateTime;
m_CreateTime.Format("%s-%s-%s %s:%s",m_sYear,m_sMonth,m_sDay,m_sHour,m_sMinute);
//将采集的时间写进表里
m_dlxx.Open();
m_dlxx.Delete();
m_dlxx.AddNew();
m_dlxx.m_exittime=m_CreateTime;
m_dlxx.Update();
m_dlxx.Close();}
请大家帮忙看看,怎样让三个量在同一行里面。谢谢了。