当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: http://news.sina.com.cn/s/2003-04-25/09501015845.shtml   3月17日:在广州街头被带至黄村街派出所   3月18日:被派出所送往广州收容遣送中转站   3月18日:被收容站送往广州收容人员救治站   3月20日:救治站宣布事主不治   4月18日:尸检结果表明,事主死前72小时曾遭毒打   孙志刚,男,今年27岁,刚从大学毕业两年。......
 ·help me(在线等)    »显示摘要«
    摘要: 我装的是windows 2000,我最近发现我无论是开机还是重起它都会自动检测c盘的, 怎么会这样的? 那位大侠救救我!!!!(急呀) ......


有关数据库中数据在列表控件中的显示问题,请高手赐教

在下有两个问题,请大家赐教,均是有关于数据库中数据在列表控件中的显示问题,  
  问题:  
  1.有一张科目表:表中有三项内容:科目编号,科目类型编号,科目名称.其中科目类型编号是该表的一个外键,其为科目类型字典表的主键.科目类型字典有两项内容:科目类型编号,科目类型名称.  
      问题是,如何在一个列表控件中显示以下内容:科目编号,科目类型名称,科目名称.  
      注:不是列表对话框!  
  2.有一张用户表:表中有三项内容:用户名,用户密码,用户工作组,没有用户编号.  
      问题是:如何在列表控件中显示以下内容:用户名,用户工作组.  
      下面是我写的:编译没有错误但是就是显示不出内容!(我的是显示全部内容,包括用户密码,现在不需要显示用户密码!)  
  void   CDelUserDlg::RefreshData()  
  {  
  if(!m_database.IsOpen())  
  {  
  m_database.Open(_T("学生管理系统"));  
  }  
  m_UserList.DeleteAllItems();  
  CDelUserSet   *m_recordset=new   CDelUserSet(&m_database);  
  CString   strSQL;  
  strSQL.Format("select   *   from   Table_User   ");  
  m_recordset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);  
  CDBVariant   var;  
  if(m_recordset->GetRecordCount()!=0)   m_recordset->MoveFirst();  
  int   i=0;  
  while(!(m_recordset->IsEOF()))  
  {  
  int   temp=0;  
  m_recordset->GetFieldValue(temp,var);  
  m_UserList.SetItemText(i,0,var.m_pstring->GetBuffer(1));  
  m_recordset->GetFieldValue(1,var);  
  m_UserList.SetItemText(i,1,var.m_pstring->GetBuffer(1));  
  m_recordset->GetFieldValue(2,var);  
  m_UserList.SetItemText(i,2,var.m_pstring->GetBuffer(1));  
  m_recordset->MoveNext();  
  i++;  
  }  
  }  
  3.请问有没有方法使列表控件处于编辑状态,在编辑完成之后,点击确定,是修改的内容写入数据库中!  
  如果贴在上方不下,可以可我联系:我得Email:y_q_wang@163.com

NO.1   作者: arvid_gs

for   (int   i=0;i   <   10;i++)  
  {  
        strText.Format(TEXT("item   %d"),   i);  
   
        //   Insert   the   item,   select   every   other   item.  
        pmyListCtrl->InsertItem(  
              LVIF_TEXT|LVIF_STATE,   i,   strText,    
              (i%2)==0   ?   LVIS_SELECTED   :   0,   LVIS_SELECTED,  
              0,   0);  
   
        //   Initialize   the   text   of   the   subitems.  
        for   (int   j=1;j   <   nColumnCount;j++)  
        {  
              strText.Format(TEXT("sub-item   %d   %d"),   i,   j);  
              pmyListCtrl->SetItemText(i,   j,   strText);  
        }  
 

NO.2   作者: small_wei

listctrl控件不是这样用的  
  我是我的程序  
  list.InsertColumn(0,"项目",LVCFMT_LEFT,120);  
  list.InsertColumn(1,"金额",LVCFMT_RIGHT,120);  
  list.InsertColumn(2,"收费时间",LVCFMT_LEFT,110);  
  list.InsertColumn(3,"打印票号",LVCFMT_LEFT,130);  
  //sno="A";  
  extern   CDatabase   db;  
  CODBCRecordset   rs(&db);  
  CString   s;  
  s.Format("select   *   from   usertabb009   where   field_5   in   (select   field_2   from   usertabb008   where   field_4   =   1)   and   field_3   =   %s",sno);  
  rs.Open(s);  
  int   i=0,iPos;  
  double   d1;  
  LV_ITEM   lvitem;  
  GetDlgItem(IDC_STATIC1)->SetWindowText(sno);  
  while(!rs.IsEOF()){  
  lvitem.mask=LVIF_TEXT;  
  lvitem.iItem=i++;  
  lvitem.iSubItem=0;  
  s   =   rs("field_5");  
  lvitem.pszText=s.GetBuffer(s.GetLength());  
  s.ReleaseBuffer(s.GetLength());  
  iPos=list.InsertItem(&lvitem);  
  lvitem.iItem=iPos;  
  lvitem.iSubItem=1;  
  d1   =   rs("field_8");  
  s.Format("%.2f",d1);  
  lvitem.pszText=s.GetBuffer(s.GetLength());  
  s.ReleaseBuffer(s.GetLength());  
  list.SetItem(&lvitem);  
  lvitem.iSubItem=2;  
  s   =   rs("field_9").AsString();  
  lvitem.pszText=s.GetBuffer(s.GetLength());  
  s.ReleaseBuffer(s.GetLength());  
  list.SetItem(&lvitem);  
  lvitem.iSubItem=3;  
  s   =   rs("field_10");  
  lvitem.pszText=s.GetBuffer(s.GetLength());  
  s.ReleaseBuffer(s.GetLength());  
  list.SetItem(&lvitem);  
  rs.MoveNext();  
  }  
  LONG   lStyle;  
  lStyle=GetWindowLong(list.m_hWnd,GWL_STYLE);//获取当前窗口类型  
  lStyle&=~LVS_TYPEMASK;   //清除显示方式位  
  lStyle|=LVS_REPORT;   //设置显示方式  
  //lStyle   &=~LVS_NOCOLUMNHEADER   ;  
  SetWindowLong(list.m_hWnd,GWL_STYLE,lStyle);//设置窗口类型  
  list.SetExtendedStyle(list.GetExtendedStyle()   |   LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES   );  
  你自己改一下就行了

NO.3   作者: cdwy411

while(!m_basicset.IsEOF())  
  {  
   
  m_basicset.GetFieldValue(0,varValue);  
  sprintf(buf,"%d",varValue.m_lVal);  
  m_info.InsertItem(i,buf);  
  m_basicset.GetFieldValue(1,varValue);  
  m_info.SetItemText(i,1,varValue.m_pstring->GetBuffer(1));  
  m_basicset.GetFieldValue(2,varValue);  
                  sprintf(buf,"%d",varValue.m_chVal);  
  m_info.SetItemText(i,2,buf);  
  m_basicset.GetFieldValue(3,varValue);  
  m_info.SetItemText(i,3,varValue.m_pstring->GetBuffer(1));  
  m_basicset.GetFieldValue(4,varValue);  
  m_info.SetItemText(i,4,varValue.m_pstring->GetBuffer(1));  
  m_basicset.GetFieldValue(5,varValue);  
  sprintf(buf,"%d-%d-%d",varValue.m_pdate->year,varValue.m_pdate->month,varValue.m_pdate->day);    
  m_info.SetItemText(i,5,buf);  
  m_basicset.GetFieldValue(6,varValue);  
  m_info.SetItemText(i,6,varValue.m_pstring->GetBuffer(1));  
   
  ..............  
                                                    ....................................  
  m_basicset.GetFieldValue(18,varValue);  
  sprintf(buf,"%d",varValue.m_chVal);  
  m_info.SetItemText(i,18,buf);  
  m_basicset.MoveNext();  
  i++;  
  }


 ·一个关于friend问题    »显示摘要«
    摘要: 下面这个类工作的很好,但是如果我把operator<<得定义方到类的外面就会出错,vc6报,ary.start access denied.请教各位大虾,其中缘由 template<class t> class arrayout { t *start,*end; char prefix,postfix; public: arrayout(int *s, i......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE