在VC里如何将数据库中的用户表显示在ListBox控件中 请问在VC里如何将数据库中的用户表显示在ListBox控件中,急!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 C++访问数据库比较复杂,先要用ado访问数据库,取到数据,然后一条条通过AddString放进去,不像C#那么方便,只要设置DataSource,做数据库访问的还是用C#比较好。 有的数据库有系统表,查询即可access的话RecordsetPtr pRstSchemaTable( "ADODB.Recordset "); pRstSchemaTable=m_pConn- >OpenSchema(adSchemaTables); while(!pRstSchemaTable- >EndOfFile){ _bstr_t tableName=pRstSchemaTable- >Fields- >GetItem( "TABLE_NAME ")- >Value;//读取表名 _bstr_t tableType=pRstSchemaTable- >Fields- >GetItem( "TABLE_TYPE ")- >Value;//读出来的不只是表而已^_^ if(!lstrcmp(str_type,_T( "TABLE "))//将表名都读出来,但是其中包含系统表哦,自己过滤吧,因为不知道楼主用的是哪个数据库 我使用的是sql,如何获得用户表呢,获得后,怎么将这些表名添加到ListBox控件中呢 读每个数据库中的 SYSOBJECTS 表。 详细的信息看联机帮助。 我使用的是SQL Server2000的数据库,我知道使用语句select name from sysobjects where xtype='U'可以得到用户表,但是怎么用在程序中,得到表的名称后怎么添加到ListBox中???望高手指教! SQL语句你已经知道,那么关于VC++ 使用数据库类的相关操作知道吗?还是listbox控件不会使用呢? http://www.vckbase.com/document/viewdoc/?id=496 我不太懂数据库类的相关操作,不知道怎么在程序中使用我的SQL语句 CString strStorePro="test";CADORecordset* pRs;pRs->Open(strStorePro,CADORecordset.openStoredProc);我的test存储过程是这样定义的:select name from sysobjects where xtype='U',即获得用户表,接下来我如何做才能在程序里的ListBox中显示那个存储过程获得的用户表呢? 然后while(!pRs->adpeof){cstring s=(char*)(_bstr_t)pRs->getcollect("name")list.addstring(s)pRs->movenext()}大概是这样 没什么,只要m_pRecordset->Open("select name from sysobjects where xtype='U'",_variant_t(m_pConn,true),adOpenStatic,adLockOptimistic,adCmdText); 菜单问题 用什么做已经写好的程序的安装程序? 用重叠IO的完成例程模型,在传送大文件时,服务器阻塞 关于动态自绘按钮 问一个最菜的问题--退出系统 50分 关于Radio Button的问题 对于recv这种阻塞函数,大家是如何避免出现收不到数据而无响应的? 新手,请问怎么给分啊 哪位大侠可提供一个实现多线程的socket通讯服务器端(在W2K下)的例程 CGI难题:为什么如果数据中含有字符'\x1A',读数据就会出错? 急求完整MFC拆分多个子窗口程序代码 Debug 版本出错 Release 版本运行正常是怎么回事?
access的话
RecordsetPtr pRstSchemaTable( "ADODB.Recordset ");
pRstSchemaTable=m_pConn- >OpenSchema(adSchemaTables);
while(!pRstSchemaTable- >EndOfFile){
_bstr_t tableName=pRstSchemaTable- >Fields- >GetItem( "TABLE_NAME ")- >Value;//读取表名
_bstr_t tableType=pRstSchemaTable- >Fields- >GetItem( "TABLE_TYPE ")- >Value;//读出来的不只是表而已^_^
if(!lstrcmp(str_type,_T( "TABLE "))//将表名都读出来,但是其中包含系统表哦,自己过滤吧,因为不知道楼主用的是哪个数据库
那么关于VC++ 使用数据库类的相关操作知道吗?还是listbox控件不会使用呢?
CADORecordset* pRs;
pRs->Open(strStorePro,CADORecordset.openStoredProc);
我的test存储过程是这样定义的:select name from sysobjects where xtype='U',即获得用户表,接下来我如何做才能在程序里的ListBox中显示那个存储过程获得的用户表呢?
while(!pRs->adpeof){
cstring s=(char*)(_bstr_t)pRs->getcollect("name")
list.addstring(s)
pRs->movenext()
}
大概是这样
m_pRecordset->Open("select name from sysobjects where xtype='U'",_variant_t(m_pConn,true),adOpenStatic,adLockOptimistic,adCmdText);