转:
给List Control 添加变量tt
加入引入ADO使用智能指针
#import "c:\program files\common files\system\ado\msado15.dll"no_namespace \rename ("EOF", "adoEOF")rename ("BOF", "adoBOF")
添加几个全局变量
RecordsetPtr vb;
_ConnectionPtr zhu;
CString xm,dz,yb;
在*.cpp文件中寻找
BOOL CDfApp::InitInstance()
{
AfxOleInit(); // <---添加,初始化COM
AfxEnableControlContainer();
//在窗体初始化事件中加入
tt.ModifyStyle(0L,LVS_REPORT);
tt.ModifyStyle(0L,LVS_SINGLESEL);
tt.ModifyStyle(0L,LVS_SHOWSELALWAYS);
tt.ModifyStyle(0L,LVS_NOSORTHEADER);
tt.SetExtendedStyle(LVS_EX_GRIDLINES); //以上这些地方为设置List Control属性和风格
tt.InsertColumn(0,"姓名"); //以下这些设置列和它们的长度
tt.InsertColumn(1,"地址");
tt.InsertColumn(2,"邮编");
tt.SetColumnWidth(0,100);
tt.SetColumnWidth(1,100);
tt.SetColumnWidth(2,100);
zhu=NULL;
zhu.CreateInstance(__uuidof(Connection));
zhu->ConnectionString="uid=;pwd=;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=zhu.mdb;";
//连接字符串
zhu->Open(L"",L"",L"",adCmdUnspecified); //打开连接
_bstr_t ha="select * from zrn"; //查询ZRN表里的数据
vb=zhu->Execute(ha,NULL,adCmdText); //获取记录集
int i=0;
while(!vb->adoEOF)
{
xm=(char*)(_bstr_t)vb->GetCollect("xm"); //xm,dz,yb 分别为你自己数据库的列名
dz=(char*)(_bstr_t)vb->GetCollect("dz"); //把这一记录中数据库里dz列下的值给字符串dz
yb=(char*)(_bstr_t)vb->GetCollect("yb");
tt.InsertItem(i,"");
tt.SetItemText(i,0,xm); //添加到list Control 中的第i行的第一列下
tt.SetItemText(i,1,dz); //添加到list Control 中的第i行的第二列下
tt.SetItemText(i,2,yb); //添加到list Control 中的第i行的第三列下
i+=1; //下次循环指向第2行
vb->MoveNext(); //移动到下一个记录
}
vb->Close(); //关闭记录集指针
zhu->Close(); //关闭数据库连接
vb=NULL;
zhu=NULL;
::CoUninitialize(); 收回COM
自己:
读取数据库中内容 输出到List Control里:
定义 CListCtrl m_ShowAdmin;
BOOL CSHOW::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//获取原风格属性
DWORD dwStyle = m_ShowAdmin.GetExtendedStyle();
//添加CheckBox、整行选中、表格线属性
dwStyle |= LVS_EX_FULLROWSELECT |LVS_EX_GRIDLINES;
//设置新属性到控件
m_ShowAdmin.SetExtendedStyle( dwStyle );
m_ShowAdmin.InsertColumn(0,"用户名",LVCFMT_CENTER,80,0);
m_ShowAdmin.InsertColumn(1,"密 码",LVCFMT_CENTER,80,1);
_variant_t Sqlq="select * from Admin";
theApp.ADOExecute(theApp.m_pRs,Sqlq);
theApp.m_pRs->MoveFirst();
int i=0;
while(!theApp.m_pRs->adoEOF)
{
CString s1=(char*)(_bstr_t)theApp.m_pRs->GetCollect("Admin_User");
CString s2=(char*)(_bstr_t)theApp.m_pRs->GetCollect("Admin_Password
m_ShowAdmin.InsertItem(i,"");
m_ShowAdmin.SetItemText(i,0,s1);
m_ShowAdmin.SetItemText(i,1,s2);
i+=1;
theApp.m_pRs->MoveNext();
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
FROM: http://blog.sina.com.cn/s/blog_6854d4190100u1nh.html