为什么进了while循环后就不出来了···是不是因为读不到最后一条记录所以一直不为空··刚学的这些类型的转换我不是很清楚··
_variant_t varseatno;
_variant_t varstarttime;
_variant_t varusetime;
_variant_t varcount;
CString Sseatno,Sstarttime,Susetime,Scount;
int i=0;
db.Open(Filepath);
Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM DataTable", 0);
while(!Dbset.IsEOF())
{
varseatno=Dbset.GetFieldValue("SeatNO");
varstarttime=Dbset.GetFieldValue("StartTime");
varusetime=Dbset.GetFieldValue("UseTime");
varcount=Dbset.GetFieldValue("Count"); Sseatno=(LPCSTR)_bstr_t(varseatno);
Sstarttime=(LPCSTR)_bstr_t(varstarttime);
Susetime=(LPCSTR)_bstr_t(varusetime);
Scount=(LPCSTR)_bstr_t(varcount);
m_list.InsertItem(i,"");
m_list.SetItemText(i,0,Sseatno);
m_list.SetItemText(i,1,Sstarttime);
m_list.SetItemText(i,2,Susetime);
m_list.SetItemText(i,3,Scount);
i++;
}
Dbset.Close();
db.Close();
}
_variant_t varseatno;
_variant_t varstarttime;
_variant_t varusetime;
_variant_t varcount;
CString Sseatno,Sstarttime,Susetime,Scount;
int i=0;
db.Open(Filepath);
Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM DataTable", 0);
while(!Dbset.IsEOF())
{
varseatno=Dbset.GetFieldValue("SeatNO");
varstarttime=Dbset.GetFieldValue("StartTime");
varusetime=Dbset.GetFieldValue("UseTime");
varcount=Dbset.GetFieldValue("Count"); Sseatno=(LPCSTR)_bstr_t(varseatno);
Sstarttime=(LPCSTR)_bstr_t(varstarttime);
Susetime=(LPCSTR)_bstr_t(varusetime);
Scount=(LPCSTR)_bstr_t(varcount);
m_list.InsertItem(i,"");
m_list.SetItemText(i,0,Sseatno);
m_list.SetItemText(i,1,Sstarttime);
m_list.SetItemText(i,2,Susetime);
m_list.SetItemText(i,3,Scount);
i++;
}
Dbset.Close();
db.Close();
}
m_list.SetItemText(i,2,Susetime);
m_list.SetItemText(i,3,Scount);
i++;
Dbset.MoveNext();//再加这句,记完数据后要往下移记录才和
要记得移动指针。。不然就永远死在第一个记录
//////修改记录存到数据库////////
db.Open(Filepath);
Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM DataTable",0);
Dbset.Edit();
for(int j=0;j<=3;j++)
{
Dbset.SetFieldValue("SeatNO",_variant_t(a[j]));
Dbset.SetFieldValue("StartTime",_variant_t(dlg1.m_time[j]));
Dbset.SetFieldValue("UseTime",_variant_t(dlg1.m_usetime[j]));
Dbset.SetFieldValue("Count",_variant_t(itoa(count[j], string, 10)));
}Dbset.Update();Dbset.Close();
db.Close();/////数据库中读到列表控件////////
db.Open(Filepath);
Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM DataTable", 0);
if(!Dbset.IsEOF()==1)
{ for(int j=0;j<=3;j++)
{
varseatno=Dbset.GetFieldValue("SeatNO");
varstarttime=Dbset.GetFieldValue("StartTime");
varusetime=Dbset.GetFieldValue("UseTime");
varcount=Dbset.GetFieldValue("Count"); Sseatno=(LPCSTR)_bstr_t(varseatno);
Sstarttime=(LPCSTR)_bstr_t(varstarttime);
Susetime=(LPCSTR)_bstr_t(varusetime);
Scount=(LPCSTR)_bstr_t(varcount);
m_list.InsertItem(i,"");
m_list.SetItemText(i,0,Sseatno);
m_list.SetItemText(i,1,Sstarttime);
m_list.SetItemText(i,2,Susetime);
m_list.SetItemText(i,3,Scount);
i++;
Dbset.MoveNext();
}
}Dbset.Close();
db.Close();
说明下,在Delphi下,你的代码是可以的,移动指针时,Delphi会根据是否有自动提交,自动帮你Update