mfc資料庫控制項
⑴ 我想做一個mfc的資料庫(odbc) 如何根據用戶在登錄對話框的選擇 在主窗口顯示不同的控制項
如果控制項不多的話,可以根據需要顯示或隱臧控制項的方法來實現。
⑵ MFC中資料庫的數據無法插入到list control控制項中
list
control大數據量調用setitemtext確實比較耗時,一般多於2000條就能明細感覺慢,你可以使用list
control的虛表方式,可以秒殺。
⑶ 怎樣將資料庫中數據表顯示在MFC中的列表控制項上,並對其進行刪除,修改
列表顯示只是一個表象,二者沒有設定好的關聯。實際的刪除操作應該在資料庫中進行,也就是執行刪除工作後,你得把列表數據刷新一下,重新顯示。
具體的函數實現,如果需要我再貼上來。 
void CMCTTView::ListItem()//刷新列表
{
 int i = 0;
 if(!m_pSet->IsOpen())
  AfxMessageBox("數據源未打開");
 m_Item.SetExtendedStyle(m_Item.GetExtendedStyle()|LVS_EX_FULLROWSELECT);
 m_Item.DeleteAllItems();
 m_Item.SetRedraw(FALSE);
 if (!m_pSet->GetRecordCount() == 0)
 {
  m_pSet->MoveFirst();
 }
 
 while(!m_pSet->IsEOF())
 {
  
  m_Item.InsertItem(i,"");
 
  m_Item.SetItemText(i,0,m_pSet->m_column1);
  m_Item.SetItemText(i,1,m_pSet->m_column2);
  m_Item.SetItemText(i,2,m_pSet->m_column3);
  m_Item.SetItemText(i,3,m_pSet->m_column4);
  
  i+=1;
  m_pSet->MoveNext();
 }
    m_Item.SetRedraw(TRUE); 
 
}
void CMCTTView::OnItemDel() //在view類中刪除條目
{
 // TODO: Add your control notification handler code here
 int listIndex;        //當前選中項的索引 
 //首先得到點擊的位置 
 POSITION pos=m_Item.GetFirstSelectedItemPosition(); //0 based    m_item是指代列表控制項
 if(pos==NULL) 
  return;  
 //得索引,通過POSITION轉化 
 listIndex=m_Item.GetNextSelectedItem(pos)+1; //1 based,so 1 added
 m_pSet->SetAbsolutePosition(listIndex);
 
  if ( MessageBox( _T( "你確定要刪除當前單詞信息嗎?" ),
   _T( "刪除確認?" ), MB_OKCANCEL | MB_ICONQUESTION ) == IDOK )
  {         
   m_pSet->Delete();
   MessageBox( _T( "該單詞信息已經被成功刪除!" ),
    _T( "刪除成功!" ), MB_OK | MB_ICONASTERISK );
   OnNext();
  }
  m_pSet->Requery();
  //if(!m_pSet->GetRecordCount() == 0)
  ListItem();
}
void CMCTTView::OnNext()
{
  m_pSet->MoveNext();
  
  if ( m_pSet->IsEOF() )
   m_pSet->MoveFirst();
}
int CMCTTDoc::AddToAcc()//在doc類中添加數據
{
 m_mCTTSet.AddNew();
 CString str1,str2,str3,str4;
 str1.Format("%s",m_Index);
 str2.Format("%f",m_UseHs);
 str3.Format("%f",m_UseHj);
 
 switch (m_HJStyle)
 {
 case 0:
  str4 = CString("類型1");
  break;
 case 1:
  str4 = CString("類型2");
  break;
 case 2:
  str4 = CString("類型3");
  break;  
 }
 m_mCTTSet.m_column1 = str1;   //Index
 m_mCTTSet.m_column2 = str2; //the use of hansi
 m_mCTTSet.m_column3 = str3; //the use of hanji 
 m_mCTTSet.m_column4 = str4; //the style of hanjie
 
 m_mCTTSet.Update();
 m_mCTTSet.Requery();
 MessageBeep(MB_OK);
 CMainFrame* pframe = (CMainFrame*)AfxGetMainWnd();  
 
 CMCTTView* pInterfaceView = (CMCTTView*)pframe->GetActiveView();
 pInterfaceView->ListItem();
 return 0;
}
⑷ MFC中用Combo Box 控制項連接資料庫,想在下拉菜單中顯示相應內容,但是失敗了
要寫UpdateData(FALSE); 把數據傳給控制項
⑸ 求大神指點怎麼在mfc中通過按鈕控制項查找資料庫中某個數據並在list control控制項中顯示 求代碼及解釋
分兩個部分:
1.
連接資料庫讀出表
中數據
:可以用ADO中的_RecordsetPtr
2.
對讀出的數據進行判斷,符合的用
CListCtrl
::
InsertItem
等函數插入.然後
Updatedata
(FALSE)
然後,你現在就可以去查找ado知識(只連接讀取的話不難)和CListCtrl類了
再具體。。。就太那個什麼了。
⑹ MFC中CListCtrl列表控制項連接資料庫不顯示數據的問題
列表控制項,你在設置文本之前,一定要先InsertItem(行號,_T("")),然後再SetItemText,不然是不會顯示出來的。
祝你成功。
⑺ 如何在mfc中把sql sever資料庫查詢結果放在列表控制項中
你要是想用微軟現成的控制項,可以在MSDN中查找下這個ADODC的ActiveX控制項,網路一下也可以查到好多的。控制項是要方便些,但是缺乏靈活性;
我們現在一般都用的ADO類庫自己寫相關的代碼,在對話框上增加一個控制項CListCtrl然後用它的成員函數把查詢結果一條一條插入進去CListCtrl::InsertItem();CListCtrl::SetItemText();查詢就用ado介面來完成,靈活性要大些,但是肯定比ActiveX控制項要繁瑣些。
⑻ MFC中列表視圖控制項怎麼調用顯示資料庫中的內容啊啊!
你要是想用微軟現成的控制項,可以在msdn中查找下這個adodc的activex控制項,網路一下也可以查到好多的。控制項是要方便些,但是缺乏靈活性;
我們現在一般都用的ado類庫自己寫相關的代碼,在對話框上增加一個控制項clistctrl然後用它的成員函數把查詢結果一條一條插入進去clistctrl::insertitem();clistctrl::setitemtext();查詢就用ado介面來完成,靈活性要大些,但是肯定比activex控制項要繁瑣些。
