📄 subject_40526.htm
字号:
<p>
序号:40526 发表者:markel 发表日期:2003-05-19 15:32:21
<br>主题:关于数据显示的问题???急!!!在线等待!
<br>内容:BOOL CStudentDialog::OnInitDialog() <BR>{<BR> CDialog::OnInitDialog();<BR> <BR> // TODO: Add extra initialization here<BR> m_list.InsertColumn(0,"年级");<BR> m_list.InsertColumn(1,"专业");<BR> m_list.InsertColumn(2,"班级");<BR> m_list.InsertColumn(3,"学号");<BR> m_list.InsertColumn(4,"姓名");<BR> m_list.InsertColumn(5,"性别");<BR> m_list.InsertColumn(6,"年龄");<BR> CRect rect;<BR> m_list.GetWindowRect(rect);<BR> int width=rect.right-rect.left;<BR> m_list.SetColumnWidth(0,width/7);<BR> m_list.SetColumnWidth(1,width/7);<BR> m_list.SetColumnWidth(2,width/7);<BR> m_list.SetColumnWidth(3,width/7);<BR> m_list.SetColumnWidth(4,width/7);<BR> m_list.SetColumnWidth(5,width/7);<BR> m_list.SetColumnWidth(6,width/7);<BR> m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);<BR> if(!m_database.IsOpen())<BR> {<BR> m_database.Open("markel");<BR> }<BR> m_list.DeleteAllItems();<BR> <BR> CStudentSet m_student;<BR> m_student.m_pDatabase=&m_database;<BR> m_student.Open(AFX_DB_USE_DEFAULT_TYPE,"select * from student");<BR> CDBVariant var;<BR> if(m_student.GetRecordCount()!=0)m_student.MoveFirst();<BR> char buf[20];<BR> <BR> int i=0;<BR> while(!m_student.IsEOF())<BR> { int p=0;<BR> m_student.GetFieldValue(p,var);<BR> sprintf(buf,"%d",var.m_chVal);<BR> m_list.InsertItem(i,buf);<BR> m_student.GetFieldValue(1,var);<BR> sprintf(buf,"%d",var.m_chVal);<BR> m_list.SetItemText(i,1,buf);<BR> m_student.GetFieldValue(2,var);<BR> sprintf(buf,"%d",var.m_chVal);<BR> m_list.SetItemText(i,2,buf);<BR> m_student.GetFieldValue(3,var);<BR> sprintf(buf,"%d",var.m_iVal);<BR> m_list.SetItemText(i,3,buf);<BR> m_student.GetFieldValue(4,var);<BR> sprintf(buf,"%d",var.m_chVal);<BR> m_list.SetItemText(i,4,buf);<BR> m_student.GetFieldValue(5,var);<BR> sprintf(buf,"%d",var.m_chVal);<BR> m_list.SetItemText(i,5,buf);<BR> m_student.GetFieldValue(6,var);<BR> sprintf(buf,"%d",var.m_chVal);<BR> m_list.SetItemText(i,6,buf);<BR> m_student.MoveNext();<BR> i++;<BR> }<BR> <BR><BR> return TRUE; // return TRUE unless you set the focus to a control<BR> // EXCEPTION: OCX Property Pages should return FALSE<BR>运行时,没有报错,就是列表控件中没有数据显示,不知是什么原因,请高手指教,,一定给分!!!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:金枪鱼 回复日期:2003-05-19 22:12:28
<br>内容:道理上似乎是对的,没有太大的错误。<BR>不过我不太习惯你的写法,因为数据库和记录集对象我都用指针。<BR><BR>另外,GetFieldValue()函数的第一个序号参数是short,你定义一个int p在哪里干什么!<BR> 而GetRecordCount()是得不到记录数量的,要得到记录数量必须遍历数据库。<BR><BR><BR><BR> m_list.InsertColumn(0,"年级",LVCFMT_CENTER,80,-1);<BR> m_list.InsertColumn(1,"专业",LVCFMT_CENTER,80,-1);<BR> .............<BR> //设置整行选取风格和网格<BR> m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);<BR> //清理列表视<BR>m_list.DeleteAllItems();<BR><BR> /*<BR> CDatabase *pDb=new CDatabase();<BR> ASSERT(pDb!=NULL);<BR> //你的数据库对象是如何初始化的<BR> */<BR> <BR> //如果数据库没有打开就尝试打开<BR> if(!pDb->IsOpen())<BR> pDb->OpenEx(......);<BR> if(pDb->IsOpen())<BR> {//数据库打开成功<BR> CStudentSet *pRs=new CStudentSet(pDb);<BR> ASSERT(pRs!=NULL);<BR> //准备SQL语句<BR> CString str_SQL=_T("select * from student");<BR> //动态只读打开记录集<BR> pRs->Open(CRecordset::dynaset,str_SQL,CRecordset::readOnly);<BR> if(!pRs->IsOpen())<BR> {//记录集打开失败<BR> MessageBox("记录集打开失败!","提示",MB_OK|ICONSTOP);<BR> }<BR> if(pRs->IsOpen())<BR> {//记录集打开成功,自动将首条记录作为当前记录<BR> CString zsStr="";<BR> int i=0;<BR> while(!pRs->IsEOF())<BR> {<BR> pRs->GetFiledValue((short)0,zsStr);<BR> m_list.InsetItem(i,zsStr);<BR> pRs->GetFieldValue((short)1,zsStr);<BR> m_list.SetItemText(i,1,zsStr);<BR> pRs->GetFieldValue((short)2,zsStr);<BR> m_list.SetItemText(i,2,zsStr);<BR> .........<BR><BR> pRs->MoveNext();<BR> i++;<BR> } <BR> pRs->Close();//关闭记录集<BR> }<BR> delete pRs;<BR> pRs=NULL;<BR> pDb->Close();//关闭数据库<BR> }<BR> else<BR>{<BR> //数据库连接失败<BR> .....<BR>}<BR> delete pDb;<BR> pDb=NULL;<BR> <BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:liha 回复日期:2003-05-19 22:34:54
<br>内容:在以前我也出现这样的情况。<BR>解决:<BR>1、通过调试看看数据集是否打开?<BR>2、是在程序中确定用了InsertItem函数。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -