C++ODBC MFC编程数据源的显示中,绑定了数据表,却只能显示第一列的数据。怎么才能让它全部显示出来。

C++ODBC MFC编程数据源的显示中,绑定了数据表,却只能显示第一列的数据。怎么才能让它全部显示出来。,第1张

应该是基于CRecordView才行,这样系统会自动生成一个相应的***Set类,里面有你数据源中的所有字段和变量,同时View类里会有个自动生成的m_pSet指针,是Set类里的,这个指针直接可以 *** 作数据库。比如我要把数据库的数据全部显示到一个报表,就是这样:

m_pSet->MoveFirst()

m_list.DeleteAllItems()//m_list是报表关联的Control型变量

do

{

CString s,s1,s2

s.Format("%d",i+1)

s1.Format("%ld",m_pSet->m_stuId)

s2.Format("%ld",m_pSet->m_stuFamilyNum)//这4条是变量类型的转换

m_list.InsertItem(i,s)//i是一个全局变量,初始值为0,用来计数的

m_list.SetItemText(i,1,s1)

m_list.SetItemText(i,2,m_pSet->m_stuName)

m_list.SetItemText(i,3,m_pSet->m_stuSex)

m_list.SetItemText(i,4,m_pSet->m_stuProfession)

m_list.SetItemText(i,5,m_pSet->m_stuClass)

m_list.SetItemText(i,6,m_pSet->m_stuHobby)

m_list.SetItemText(i,7,m_pSet->m_stuAddress)

m_list.SetItemText(i,8,s2)//向报表插入数据库的数据,也就是读取数据库

i++// i 递增

m_pSet->MoveNext()//指针后移

} while(!m_pSet->IsEOF())

m_pSet->Close()

create table A

(

name varchar(20),

cplan varchar(20)

)

insert into A

select '张三','方案一'

insert into A

select '李四','方案三'

insert into A

select '张三','方案二'

insert into A

select '李四','方案四'

create table B

(

name varchar(20)

)

insert into B

select '张三'

insert into B

select '李四'

SELECT name,LEFT(UserList,LEN(UserList)-1) as paths FROM (

SELECT name,

(SELECT cplan+',' FROM A WHERE name=B.name ORDER BY name FOR XML PATH('')) AS UserList

FROM B

GROUP BY name

) C


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10046150.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存