当前位置:首页 » 操作系统 » 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控件要繁琐些。

热点内容
无法访问g盘拒绝访问 发布:2025-05-16 19:32:57 浏览:117
阿里云服务器如何把c盘变成d盘 发布:2025-05-16 19:12:36 浏览:496
unix环境高级编程学习 发布:2025-05-16 19:11:49 浏览:421
如何将20的硝酸配置成5的 发布:2025-05-16 19:04:42 浏览:971
怎么给一个文件夹设置时间开锁 发布:2025-05-16 18:58:00 浏览:823
脚本存放目录 发布:2025-05-16 18:57:20 浏览:566
cs16制作脚本 发布:2025-05-16 18:44:25 浏览:444
分油算法 发布:2025-05-16 18:36:19 浏览:691
吃鸡低配置手机如何开极致画质 发布:2025-05-16 18:15:20 浏览:192
空密码访问 发布:2025-05-16 18:08:51 浏览:893