向List Control中添加ACCESS数据内容
- 格式:doc
- 大小:28.00 KB
- 文档页数:3
ACCESS 数据库和VB 的连接Edited by Ryan 20131、建立Access 数据库2、启动VB ,建立标准EXE图1添加ActiveX 控件 鼠标指向任意VB 控件,单击右键,选择“部件(O )”,出现图3所示界面3、F 不再总系i 文个对近梅on新建 现存 是期打开口)帮助力可导苣天ActiveX 控 件I 君 川舞序 A CLI vex _21 挡Exa A C -.IT ^ Uh Active!; ILL ActiveX 文挡Dll 1JHJML 应月程序 酒谑工程I K 7,:1 隹也 U 日 民立叶工田痘区出区山T 拜,根式T 岛iH 古化皿 ♦疆 .::U 曲刀干IAJ.片R :电电葩 6 c -越工招>>工程1 —・工方工口若口£七Tx£uail Buxv I£ 工程I - For&L (Foirft)口回区图2Microsoft ADO Data Control 6.0 (OLEDB)”,出现如图 4 所示控件施定 I 取消 I Jvffl lA :在件 W 牌丁南、小象 Micro soft JIHO Dtia Control 6. 0 (OLEDB.) 定位.C : \IVinnh'S\syEten3Z\MSWIiD. OCX 二I 上1 — Nicrosoft DatsGri i Control 6 0 [OLIBBJ Niaros':£+ D+tcLi si Cc -ntr ol= 6. □ (DLEKE Fl i aro z ■:> £t Da.t eRep eater Coritrol 6. D I.0L E riici Jiv fL 21ns co y <_ F 厂~| 之 LiveDapCtrl 1.0 :言愦最 Mier 口匕”ft eEE BarCode CarLtrol 9.0 M i aro s ■:■ £t Ch 4士 Cc-ntrc-L 6. U (.CLEDB. NlCT-33o£t D onm C pn.tr 6. 0 Conmon Dialog Control Q. 0 Dats BoTuid List Controls 6. L 尸.五不山无Lii i 工 HicroEoft H iizro 匕(I ft icroEoft MJO Data Control 6 0 [OLIEE L 添加部件IWicHEoft 居。
连接access数据库及插入数据连接access数据库用的代码[复制到剪贴板]CODE:OleDbConnection conn;//声明一个OledbConnection对象conn=new OleDbConnection();//建立一个oledbConnection 对象//设定连接字符串ConnectionStringconn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0; "+"Data Source=" + Server.MapPath("user.mdb");conn.Open();OleDbCommand Cmd; //声明一个Command对象//建立Command对象,并且指定SQL语句string SQLStr;SQLStr="Select * From reg where userid='" + username.Text + "'";Cmd=new OleDbCommand(SQLStr,conn);OleDbDataReader rd; //声明一个DataReader对象rd=Cmd.ExecuteReader(); //执行SQL指令,并将其结果设定给DataReaderif(rd.Read())Response.Write("该用户名已经存在,请重新输入!");else{if(password.Text!=repass.Text)Response.Write("两次密码不相同,请重新输入!");else{step1.Visible=false;step2.Visible=true;}}插入数据到access数据库[复制到剪贴板]CODE:OleDbConnection conn;//声明一个OledbConnection对象conn=new OleDbConnection();//建立一个oledbConnection 对象//设定连接字符串ConnectionStringconn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0; "+"Data Source=" + Server.MapPath("user.mdb");conn.Open();OleDbCommand Cmd; //声明一个Command对象//建立Command对象,并且指定SQL语句string SQLStr;SQLStr="Insert into reg values('" + username.Text + "','";SQLStr += password.Text + "','" + Email.Text + "','";SQLStr += addr.Text + "','" +phone.T ext + "','";SQLStr += sex.SelectedItem.T ext +"','" + Birth.Text + "')";Cmd=new OleDbCommand(SQLStr,conn);Cmd.ExecuteNonQuery(); //执行SQL指令Response.Write("恭喜,您已经注册成功!");。
1:首先建立一个access数据库保存为xhnew.mdb 表名为aa字段如下:id 自动排序name 文本content 文本xhtime 日期默认值now()title 文本2:打开DW 建立文件conn.asp文件代码如下:程序代码<%set conn=server.createobject("adodb.connection")conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("xhnew.mdb")%>这段语句是连接数据库的语句set conn=server.createobject("adodb.connection")创建一个connection对象用该对象的open方法打开数据库driver={microsoft access driver (*.mdb)};这句语句是access的驱动dbq="&server.mappath("xhnew.mdb")这句是数据库的路径建立conn.asp是为了方便接下来的教学。
我们可以任何要用到打开数据库连接的文件里加<!--#include file="conn.asp"-->就可以调用是不是很方便。
第一个小时就学这么多。
当你弄明白上面的数据库还有代码后。
就继续跟着我学吧!(第2个小时)现在来学把数据库的信息输出来下面先建立一个主文件index.asp代码如下程序代码<!--#include file="conn.asp"--><%exec="select * from aa order by id desc "set rs=server.createobject("adodb.recordset")rs.open exec,conn,1,1%><table width="628" height="24" border="1" align="center" cellpadding="1" cellspacing="0"><%if rs.eof and rs.bof thenresponse.write("暂时没有文章")elsedo while not rs.eof%><tr><td width="66" height="22" ><%=rs("id")%></td><td width="66" ><%=rs("name")%></td><td width="66" ><%=rs("content")%></td><td width="273" ><%=rs("xhtime")%></td><td width="53" ><%=rs("title")%></td><td><a href="modify.asp?id=<%=rs("id")%>" target="_self">编辑</a></td><td width="32" ><a href="del.asp?id=<%=rs("id")%>">删除</a></td></tr><%rs.movenextloopend if%></table><%rs.closeset rs=nothingconn.closeset conn=nothing%><td><a href="add.asp">添加</a></td>代码解释:(1)<%exec="select * from aa order by id desc "set rs=server.createobject("adodb.recordset")rs.open exec,conn,1,1%>上面的代码是创建一个recordset对象。
VS2010 C++学习(6):ListCtl用法及ADO方式读写Access程序学习VC++编制的ListCtl用法及ADO方式读写Access程序的应用。
一、主要内容:1.基于ListCtl用法的设计;2.基于ADO方式读写Access程序的应用;程序运行示例如下:二、设计实现:(一)、首记录、上下记录、尾记录的实现首先在LISTctrl中取消当前选中的Item ,然后移动数据库的记录,最后显示选中新记录。
(二)、增加、删除、编辑按钮的实现对数据集进行增加、删除、编辑操作,然后更新LISTctrl。
(三)、使用了邓学彬设置列表控件(ListCtrl)各种颜色的类/detail/cometnet/4970247三、基础知识:(一)、ListCtl用法1.设置listctrl 风格及扩展风格LONG lStyle;lStyle = GetWindowLong(m_List.m_hWnd, GWL_STYLE);//获取当前窗口stylelStyle &= ~LVS_TYPEMASK; //清除显示方式位lStyle |= LVS_REPORT; //设置styleSetWindowLong(m_List.m_hWnd, GWL_STYLE, lStyle);//设置styleDWORD dwStyle = m_List.GetExtendedStyle();dwStyle |= LVS_EX_FULLROWSELECT;//选中某行使整行高亮(只适用与report风格的listctrl)dwStyle |= LVS_EX_GRIDLINES;//网格线(只适用与report风格的listctrl)dwStyle |= LVS_EX_CHECKBOXES;//item前生成checkbox控件m_List.SetExtendedStyle(dwStyle); //设置扩展风格2.InsertColumn函数函数属于CListCrl类中的。
VC6.0连接ACCESS数据库今天在网上看了很多有关VC连接数据库的例子,但是大部分都是给出了代码,但是没有很详细地讲解了如何连接数据库,这就是我为什么要写这篇文章,特别适合初学者,看这里你无需要懂得是什么意思,尽管跟着步骤一步一步走那么你就可以连接成功!已发表到/forpig博客中首先在VC++中建立一个基于对话框的工程(在这里取名为sjtest)1、在StdAfx.h头文件中导入msado15.dll文件。
(代码如下)#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace \rename("EOF","adoEOF")rename("BOF","adoBOF")2、在主窗口类声明两个变量。
(在CsjtestDlg.h中)代码:_ConnectionPtr m_pConnection;_RecordsetPtr m_pRecordset;关于_ConnectionPtr 和_RecordsetPtr 两个智能指针具体作用网上很多,我不详述。
想了解的请读者自己查询,本文旨在为大家建立起数据库连接并且显示出来!3、在对话框中添加一个ListControl控件,并且将其属性中的Style设置如图将View设置成Report,Single selection,auto arrange no label wrap勾上!4、在CLASS WIZARD里面添加一个和LISTCONTROL想关联的变量m_Grid。
5、在CSjtestApp应用程序类中的初始化函数InitInstance()中初始化COM环境在上面添加:::CoInitialize(NULL);并在return之前释放:添加代码如下:::CoUninitialize();5、建立ADO连接数据库函数在主窗口类(CSjktestDlg)库中添加函数OnInitADOConn()如图:并在该函数添加如下代码:try{//创建连接对象实例m_pConnection.CreateInstance("ADODB.Connection");//设置连接字符串CString strConnect="DRIVER={Microsoft Access Driver (*.mdb)};\ uid=;pwd=;DBQ=shujuku.mdb;";//使用Open方法连接数据库m_pConnection->Open((_bstr_t)strConnect,"","",adModeUnknown);catch(_com_error e){AfxMessageBox("连接数据失败,请检查数据库路径是否正确!");}在这里我的数据名字为shujuku.mdb,当然CString strConnect="DRIVER={Microsoft Access Driver (*.mdb)}; uid=;pwd=;DBQ=shujuku.mdb;";也可以使用如下字符串连接CString strConnect="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=shujuku.mdb;Persist Security Info=False";代替6、按照第五步那样建立关闭记录集和连接函数ExitConnect()并添加代码://关闭记录集和连接if(m_pRecordset!=NULL)m_pRecordset->Close();m_pConnection->Close();7、接着在初始化对话框中调用OnInitADOConn函数,已经获取数据库表中数据并显示在列表控件中。
用asp如何同时向ACCESS数据库中添加多条记录一、动态增加表单元素<html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head><body bgcolor="#FFFFFF" text="#000000"><table><tr><td><input type="tex" name="text"></td><td bgcolor="#FFFFFF"><input type="text" name="text"></td><td bgcolor="#FFFFFF"><input type="text" name="text"></td><tdbgcolor="#FFFFFF"><input type="text" name="text"></td><td ><input type="text" name="text"></td></tr></table><input type="button" name="add_line" value="增加下一行"OnClick="AddFileInput()"></body></html><script language="VBScript">NowFileInputNo = 1NowFileInputCount = 0Sub AddFileInput()If NowFileInputCount < 10 ThenHTMLSrc = "<table Id=FileInput"& NowFileInputNo &"><tr><td> <input type=""text"" name=""text""></td><td><input type=""text""name=""text""></td><td><input type=""text""name=""text""></td><td><input type=""text"" name=""text""></td>" HTMLSrc = HTMLSrc & "<td><input type=""text"" name=""text""><input type=button value=删除class=cbutton OnClick=""DelFileInput("& NowFileInputNo &")""></td></tr></table>"& vbcrlfdocument.all.add_line.InsertAdjacentHTML "beforeBegin", HTMLSrcNowFileInputNo = NowFileInputNo + 1NowFileInputCount = NowFileInputCount + 1ElseAlert "增加太多记录行"End IFEnd SubSub DelFileInput(tableno)document.all("FileInput"& tableno).outerHTML = "" NowFileInputCount = NowFileInputCount - 1End Sub</script>二、添加多条记录Sub WriteData()Dim recCnt,iDim UserID,UserName,ScoreDim SqlStr//用于动态取得需要录入多少条记录recCnt=cint(request.form("recCnt"))//批量录入数据for i=1 to recCntUserID=trim(request.form("UserID")(i))UserName=trim(request.form("UserName")(i))score=trim(request.form("score")(i))sqlStr="insert into Users(UserID,UserName,score)value( '"sqlStr=sqlStr&UserID&"','"sqlStr=sqlStr&UserName&"','"sqlStr=sqlStr&UserName&"')"Response.Write sqlStrconn.execute(sqlStr)nextconn.closeresponse.write"数据成功录入"三、动态表单与接收<html><head><title>无标题文档</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><script language="javascript">var curRow=null;var y=1;function selectRow(){var e=window.event;var tr1=e.srcElement;if(curRow)curRow.bgColor="#FFFFFF";tr1.bgColor="e7e7e7";curRow=tr1;}function addRow(src){//alert(src);var newrow = src.insertRow(src.rows.length-1);newrow.attachEvent("onclick",selectRow);newrow.height=20;var i=4;while(i--){var newcell = newrow.insertCell();switch(i){case 0: newcell.innerHTML= '<input type="button"onClick="javascript:delRow(this.parentElement.parentElement)" value="删除此行">'+(y++);document.all.count.value=y-1;break;case 1:newcell.innerHTML=div2.innerHTML;break;case 2:newcell.innerHTML=div3.innerHTML;break;case 3:newcell.innerHTML=div4.innerHTML;break;default: newcell.innerHTML=div1.innerHTML;break;}}//alert(newrow.outerHTML);}function delRow(src){var tab=src.parentElement;var i=tab.rows.length;var j=tab.rows.length;while(i--){if(src==tab.rows[i]){//alert("就是这行----"+ i);document.all.count.value=j-3;tab.deleteRow(i);}}}</script></head><body><form name="form1" action="2.asp" method="post" onsubmit=return(checkv())><h3>请输入经销商的通讯信息:</h3>姓名: <input type="text" name="jxname"><br>地址: <input type="text" name="jxadd"><br>电话: <input type="text" name="jxtel"><br>请输入库存信息<br><table id="tb" width="100%" border="1" align="center" cellpadding="1" cellspacing="1" style="border-collapse:collapse" bordercolor="#111111"><tr><th scope="col" width="25%">品名</th><th scope="col" width="25%">规格</th><th scope="col" width="25%">库存量</th><th scope="col" width="25%">操作</th></tr><tr id="blankRow" onClick="addRow(this.parentElement)"><td> </td><td> </td><td> </td><td> </td></tr></table><input type="hidden" name="count" value="count"><input type="submit" id="btnSub" name="btnSub" value="提交"><br></form><div id="div1" style="display:none "><input id="txt" type="text" name="id" style="width:97%; background-color:#FFFFEF"></div><div id="div2" style="display:none "><input id="txt" type="text" name="id1" style="width:97%; background-color:#FFFFEF" value="11"></div></body><div id="div3" style="display:none "><select name="id2" style="width:97%; background-color:#FFFFEF" ><option value="箱">箱</option><option value="件">件</option></select></div><div id="div4" style="display:none "><input id="txt" type="text" name="id3" style="width:97%; background-color:#FFFFEF" value="33"></div><script language="javascript">function checkv(){if (form1.jxname.value.length == 0){alert("请填写姓名和地址!");form1.jxname.focus();return false;}else if(!(check_number(form1.id1.value))){alert("数量只能为数字")form1.id1.focus();return false;}elsereturn (true);}function check_number(myint) {var checkOK = "0123456789"; var checkStr = myint;var allValid = true;var decPoints = 0;var allNum = "";for (i = 0; i < checkStr.length; i++) {ch = checkStr.charAt(i);for (j = 0; j < checkOK.length; j++) if (ch == checkOK.charAt(j)) break;if (j == checkOK.length){allValid = false;break;}allNum += ch;}if (!allValid){return (false);}return (true);}</script></html>2. 2.asp文件<%'////////////////////取表单数据response.write("共"+request.form("count")+"记录")i=request.form("count")jxname=request.form("jxname")jxadd=request.form("jxadd")jxtel=request.form("jxtel")response.write(request.form("jxname"))response.write("<br>")response.write(request.form("jxadd"))response.write("<br>")response.write(request.form("jxtel"))response.write("<br>")str1=trim(request.form("id1"))str2=trim(request.form("id2"))str3=trim(request.form("id3"))arrayA=Split(str1,",")arrayb=Split(str2,",")arrayc=Split(str3,",")For i = 0 to UBound(arrayA)Response.Write "<LI>" & arrayc(i)&"--"&arrayb(i)&"--"&arrayA(i)Next四、根据上面的表单选项输入,来确定下面的表单显示内容,不刷新页面如何实现?有这样的技术文章吗?我来帮他解答2006-3-16 10:10满意回答<select name="select" onChange="varjmpURL=this.options[this.selectedIndex].value ; if(jmpURL!=''){window.location=jmpURL;} else {this.selectedIndex=0 ;}" ><option >选择总分类</option><%Set Rs=server.createobject("adodb.recordset")Rs.Open "select * from DF_Sort order by ID Asc",adocon,1,1do while not Rs.eof %><optionvalue="Sort2.asp?ID=<%=Rs("ID")%>&SortName=<%=Rs("SortName")%>&l mname_a=类别管理&lmname_b=二级类别"<%ifRs("ID")=cint(request.QueryString("id")) then%> selected <%endif%>><%=trim(Rs("SortName"))%></option><%Rs.movenextloopRs.closeset Rs=nothing%></select>五、求弹出子窗口之后,父窗口不能动的代码<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><title>点击弹出对话框且背景变暗的效果</title><meta http-equiv="content-type" content="text/html;charset=gb2312"><link href="StyleSheet.css" rel="stylesheet" type="text/css"/><script language="javascript">function locking(){document.all.ly.style.display="block";document.all.ly.style.width=document.body.clientWidth; //设置层1宽度等于body宽度,width=100%也可以,不过有一些误差,所以最好用这个document.all.ly.style.height=document.body.clientHeight; //设置层1高度满屏yer2.style.display='block';yer2.style.top =document.body.clientHeight/2-document .getElementById("Layer2").clientHeight/2//设置层2的距顶位置居中算法yer2.style.left =document.body.clientWidth/2-document .getElementById("Layer2").clientWidth/2;//设置层2的距左位置居中算法}function Lock_CheckForm(theForm){document.all.ly.style.display='none';yer2.style.display='none';}</script></head><body><p><input type="button" value="弹出窗口" onclick="locking();"></p> <!--这是要覆盖网页的层1,不必写任何东西--><div id="ly"></div><!--浮层2框架开始--><div id="Layer2"><div class="msg_title"><a href="#" class="myfont" onclick="Lock_CheckForm(this);">[关闭]</a></div><div class="msg_content"><p>确定退出?</p><p><input type="button" value="确定"/><input type="button" onclick="showclose();" value="取消"/></p> </div></div><!--浮层2框架结束--></body></html>。
数据添加方法概述数据库进行数据管理是必不可少的,如:添加、编辑、删除、查询等,本题主要与大家共同探讨,关于数据的管理中的数据添加方法。
下面我将就结合数据与对象元素的关系,即:数据绑定情况,讲解关于数据添加方法。
为此我们必须先弄清一个概念,什么是数据绑定。
数据绑定:是把数据与用户界面元素(窗体、控件)建立内在关联(或捆绑)的通用机制。
与之绑定的数据可以是表、查询或Select语句。
如果以数据与用户界面元素绑定的紧密程度来区分,大致可以分为:全绑定、半绑定、非绑定三种情况,我们以绑定情况不同,分类探讨关于数据添加方法。
一、实现全绑定的数据添加方法。
1.0 数据全绑定:是指将数据与窗体及窗体中数据输入控件同时进行绑定。
1.1窗体数据绑定实现。
在窗体属性对话框中,指定窗体绑定数据,实例中绑定的“客户”表。
1.2 输入数据控件数据绑定实现。
通过控件对象属性对话框,逐一对控件指定绑定字段。
在此必须说明,控件数据绑定之前必须对窗体进行数据绑定,不然控件无法进行数据绑定。
通过以上两个步骤,就完成了数据完全绑定,就可以通过该窗体界面进行数据添加操作了(参看实例全绑定一)。
我们也可以通过窗体向导很轻松的实现数据全绑定,在此不做讲解,大家可以参看有关资料。
2.0 全绑定的数据添加方法的优点及不足:2.1 优点是:方便、简单、易生成界面,对于初学者较容易掌握; 2.2 不足是:(1)打开窗体后,窗口中会列出全部数据,而非新记录添加状态;需要我们点击导航栏中的添加新记录按钮,才能进行新数据添加;(2)我们在控件中输入新数据,在全绑定情况下,就等于直接在数据表中写入数据,从严格意义上说,缺乏一定安全性。
3.0 全绑定的数据添加方法完善:3.1界面初始新记录添加状态实现。
我们在窗体属性对话框中,点[数据页]—[数据输入]点选为“是”,通过此设置后,我们打开窗体界面即为新记录添加状态。
(参看实例全绑定二)3.2单击按钮实现跳转到添加新记录。
access listviewcontrol 用法Access 中的 ListView 控件用于显示和编辑数据的列表。
以下是在 Access 中使用 ListView 控件的一般用法:1. 在 Access 的表单或报表设计器中,选择“插入”选项卡上的“ActiveX 控件”下拉菜单,然后选择“Microsoft ListView Control”的版本。
2. 在表单或报表设计中的适当位置绘制 ListView 控件。
3. 右键单击 ListView 控件并选择“属性”以打开属性窗口。
在属性窗口中,您可以设置控件的外观、布局和数据源等属性。
4. 设置 ListView 控件的数据源。
您可以使用以下方法之一:a. 使用控件的 ItemData 属性设置项。
例如,通过使用以下代码将文本和图标添加到 ListView 控件的项中:```vbaListView1.ListItems.Add(, , "Item 1").Icon ="path_to_icon_file"ListView1.ListItems.Add(, , "Item 2").Icon ="path_to_icon_file"```b. 使用控件的 ListItems 集合属性动态添加项。
例如,使用以下代码将带有自定义文本和图标的新项添加到 ListView 控件中:```vbaDim newItem As ListItemSet newItem = ListView1.ListItems.Add(, , "Item 1")newItem.Icon = "path_to_icon_file"Set newItem = ListView1.ListItems.Add(, , "Item 2")newItem.Icon = "path_to_icon_file"```c. 使用控件的 ColumnHeaders 集合属性设置列标题。
读取温湿度并添加入数据库串口设置:波特率19200端口COM5奇偶校验None停止位One数据位8打开串口获取节点网络地址命令自动转换为16进制数,点击发送返回协调器和终端的网关各32位,读取温湿度选择网络地址为232,点击发送按钮后,后台先清除数据库数据再写入刚读取的网络地址,温度,湿度数据,点击停止按钮则温湿度节点停止发送数据,数据库也随之停止写入数据privatevoid Form1_Load(object sender, EventArgs e){string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = shuju.mdb "; OleDbConnection myConn = new OleDbConnection(strCon); myConn.Open();string strDele = "DELETE FROM tblcon ";OleDbCommand myCommand = new OleDbCommand(strDele, myConn);myCommand.ExecuteNonQuery();myConn.Close();}privatevoid timer2_Tick(object sender, EventArgs e){string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = shuju.mdb "; OleDbConnection myConn = new OleDbConnection(strCon); myConn.Open();string sqlString = "insert into tblcon(netaddr,wendu,shidu,histime ) values ('" + wldz + "',' " + wendusj + "',' " + shidusj + "','" + lurursj + "')";OleDbCommand myCommand1 = new OleDbCommand(sqlString, myConn);myCommand1.ExecuteNonQuery();myConn.Close();timer2.Enabled = false;}。
转:
给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); //获取记录集
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();
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
}。