當前位置:首頁 » 操作系統 » mfc資料庫控制項

mfc資料庫控制項

發布時間: 2022-08-20 23:41:06

⑴ 我想做一個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控制項要繁瑣些。

熱點內容
pythonainb 發布:2025-05-16 21:45:56 瀏覽:855
淘汰伺服器可以做家用電腦嗎 發布:2025-05-16 21:41:31 瀏覽:842
遊程編碼c語言 發布:2025-05-16 21:26:51 瀏覽:586
帝來哪個配置值得購買 發布:2025-05-16 21:12:29 瀏覽:462
什麼是nodejs前端伺服器 發布:2025-05-16 21:12:17 瀏覽:405
編譯選項立即綁定未定義符號 發布:2025-05-16 20:55:13 瀏覽:906
linuxmysql慢日誌 發布:2025-05-16 20:47:58 瀏覽:272
村兩委有哪些配置 發布:2025-05-16 20:34:47 瀏覽:294
我的世界有什麼伺服器好玩的 發布:2025-05-16 20:28:57 瀏覽:484
c語言按位與運算 發布:2025-05-16 20:24:10 瀏覽:755