关于access数据库根据一个字段的内容将同行上另一字段内容输出的问题

问题描述

大家好,我想实现的功能是当数据库字段state的内容为“是”的时候,把同行的字段room-no的内容赋值给一个变量。因为state为“是”的行数很多,想遍历数据库,从头到尾读,遇到state为“是”的就把同行的room_no内容输出。代码如下,但是只能把第一个为“是”的room_no的内容输出,数据库后面为“是”的都不行。不知道该怎么修改。PrivateSubForm2_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadDimconnStr,selectName,selectCmdAsStringDimi,mAsIntegerFori=0To39Step1selectCmd="SELECTroom_noFROMinformationWHEREstate='是'"connStr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=user.mdb"DimconnAsOleDbConnection,cmdAsOleDbCommand,myReaderAsOleDbDataReaderconn=NewOleDbConnection(connStr)conn.Open()cmd=NewOleDbCommand(selectCmd,conn)myReader=cmd.ExecuteReader()myReader.Read()roomnumber=myReader.Item("room_no")SelectCaseroomnumberCase"101"b101.BackColor=Color.Bluea101=TrueCase"102"b102.BackColor=Color.Bluea102=TrueCase"103"b103.BackColor=Color.Bluea103=TrueCase"104"b104.BackColor=Color.Bluea104=TrueCase"105"b105.BackColor=Color.Bluea105=TrueCase"106"b106.BackColor=Color.Bluea106=TrueCase"107"b107.BackColor=Color.Bluea107=TrueCase"108"b108.BackColor=Color.Bluea108=TrueCase"109"b109.BackColor=Color.Bluea109=TrueCase"110"b110.BackColor=Color.Bluea110=TrueCase"201"b201.BackColor=Color.Bluea201=TrueCase"202"b202.BackColor=Color.Bluea202=TrueCase"203"b203.BackColor=Color.Bluea203=TrueCase"204"b204.BackColor=Color.Bluea204=TrueCase"205"b205.BackColor=Color.Bluea205=TrueCase"206"b206.BackColor=Color.Bluea206=TrueCase"207"b207.BackColor=Color.Bluea207=TrueCase"208"b208.BackColor=Color.Bluea208=TrueCase"209"b209.BackColor=Color.Bluea209=TrueCase"210"b210.BackColor=Color.Bluea210=TrueCase"301"b301.BackColor=Color.Bluea301=TrueCase"302"b302.BackColor=Color.Bluea302=TrueCase"303"b303.BackColor=Color.Bluea303=TrueCase"304"b304.BackColor=Color.Bluea304=TrueCase"305"b305.BackColor=Color.Bluea305=TrueCase"306"b306.BackColor=Color.Bluea306=TrueCase"307"b307.BackColor=Color.Bluea307=TrueCase"308"b308.BackColor=Color.Bluea308=TrueCase"309"b309.BackColor=Color.Bluea309=TrueCase"310"b310.BackColor=Color.Bluea310=TrueCase"401"b401.BackColor=Color.Bluea401=TrueCase"402"b402.BackColor=Color.Bluea402=TrueCase"403"b403.BackColor=Color.Bluea403=TrueCase"404"b404.BackColor=Color.Bluea404=TrueCase"405"b405.BackColor=Color.Bluea405=TrueCase"406"b406.BackColor=Color.Bluea406=TrueCase"407"b407.BackColor=Color.Bluea407=TrueCase"408"b408.BackColor=Color.Bluea408=TrueCase"409"b409.BackColor=Color.Bluea409=TrueCase"410"b410.BackColor=Color.Bluea410=TrueEndSelectNextEndSub

解决方案

解决方案二:
datareader对象读取数据每次只能读取一个值,,需要循环读取才行。。whilemyReader.Read()‘你的代码endwhile
解决方案三:
你不用穷举所用的控件。。那样是出力不讨好的。。。用下面的这种方法:dimanumas你的type(a101的类型)dimbnumas你的type(b101的类型)dimxasinteger=roomnumberanum=Me.Controls.Find("a"+x.tostring,False)(0)bnum=Me.Controls.Find("b"+x.tostring,False)(0)bnum.backcolor=color.blueanum=true这样你就可以用上面的这几句代替你的繁琐的select语句。。。呵呵。。。直接定义变量然后遍历就行了。。。
解决方案四:
你不应该循环取数据的方法,而应该循环取到的数据.DimconnStr,selectName,selectCmdAsStringDimi,mAsIntegerselectCmd="SELECTroom_noFROMinformationWHEREstate='是'"connStr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=user.mdb"DimconnAsOleDbConnection,cmdAsOleDbCommand,myReaderAsOleDbDataReaderconn=NewOleDbConnection(connStr)conn.Open()cmd=NewOleDbCommand(selectCmd,conn)myReader=cmd.ExecuteReader()roomnumber=myReader.Item("room_no")DoWhilemyReader.Read()SelectCaseroomnumberCase"101"b101.BackColor=Color.Bluea101=TrueCase"102"b102.BackColor=Color.Bluea102=TrueCase"103"b103.BackColor=Color.Bluea103=TrueCase"104"b104.BackColor=Color.Bluea104=TrueCase"105"b105.BackColor=Color.Bluea105=TrueCase"106"b106.BackColor=Color.Bluea106=TrueCase"107"b107.BackColor=Color.Bluea107=TrueCase"108"b108.BackColor=Color.Bluea108=TrueCase"109"b109.BackColor=Color.Bluea109=TrueCase"110"b110.BackColor=Color.Bluea110=TrueCase"201"b201.BackColor=Color.Bluea201=TrueCase"202"b202.BackColor=Color.Bluea202=TrueCase"203"b203.BackColor=Color.Bluea203=TrueCase"204"b204.BackColor=Color.Bluea204=TrueCase"205"b205.BackColor=Color.Bluea205=TrueCase"206"b206.BackColor=Color.Bluea206=TrueCase"207"b207.BackColor=Color.Bluea207=TrueCase"208"b208.BackColor=Color.Bluea208=TrueCase"209"b209.BackColor=Color.Bluea209=TrueCase"210"b210.BackColor=Color.Bluea210=TrueCase"301"b301.BackColor=Color.Bluea301=TrueCase"302"b302.BackColor=Color.Bluea302=TrueCase"303"b303.BackColor=Color.Bluea303=TrueCase"304"b304.BackColor=Color.Bluea304=TrueCase"305"b305.BackColor=Color.Bluea305=TrueCase"306"b306.BackColor=Color.Bluea306=TrueCase"307"b307.BackColor=Color.Bluea307=TrueCase"308"b308.BackColor=Color.Bluea308=TrueCase"309"b309.BackColor=Color.Bluea309=TrueCase"310"b310.BackColor=Color.Bluea310=TrueCase"401"b401.BackColor=Color.Bluea401=TrueCase"402"b402.BackColor=Color.Bluea402=TrueCase"403"b403.BackColor=Color.Bluea403=TrueCase"404"b404.BackColor=Color.Bluea404=TrueCase"405"b405.BackColor=Color.Bluea405=TrueCase"406"b406.BackColor=Color.Bluea406=TrueCase"407"b407.BackColor=Color.Bluea407=TrueCase"408"b408.BackColor=Color.Bluea408=TrueCase"409"b409.BackColor=Color.Bluea409=TrueCase"410"b410.BackColor=Color.Bluea410=TrueEndSelectLoopEndSub
解决方案五:
顶2楼,直接查找出state的内容为“是”的字段,再对查找出来的字段进行修改
解决方案六:
foreach,break
解决方案七:
myReader=cmd.ExecuteReader()whilemyReader.Read()roomnumber=myReader.Item("room_no")SelectCaseroomnumberCase"101"b101.BackColor=Color.Bluea101=Trueendwhile或通过数组或类属性实现赋值,添加数据到List<T>

时间: 2024-07-31 11:07:25

关于access数据库根据一个字段的内容将同行上另一字段内容输出的问题的相关文章

access数据库-请教一个VC++连接ACCESS数据库的问题

问题描述 请教一个VC++连接ACCESS数据库的问题 我用VC连接有密码的ACCESS数据库死活连接不上,密码输入的是绝对正确,如果把密码去掉就连上了,请问是怎么回事呢? 数据库连接字符串如下: "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:db11.mdb;Persist security info = FALSE;Jet OLEDB:Database Password=548654"; 解决方案 看上去字符串没啥问题.密码对不上只

VISUAL C#,用access数据库做一个用word进行试题编辑输出的东西??完全没有头绪

问题描述 怎么个东西啊?有木有实例什么的谢谢啊啊啊 解决方案 解决方案二:生成word文档?解决方案三:http://www.cnblogs.com/qyfan82/archive/2007/09/14/893293.html解决方案四:你可以将数据存储到Access,然后最后导出到Word文件解决方案五:引用3楼的回复: 你可以将数据存储到Access,然后最后导出到Word文件 具体怎么做您能说下么~~我是个初级小白~~~谢谢啦~~

为什么在ACCESS数据库中能够执行正确,在.net上却不正确

问题描述 这是我的表我在access表上输入sql语句:Select*FROMqiudui1ASaWhereqiuduiidin(selectmin(qiuduiid)fromqiudui1groupbyguojia)得到的结果可是到.net运行是却不行stringsqlgjqc="Select*FROMqiudui1ASaWhereqiuduiidin(selectmin(qiuduiid)fromqiudui1groupbyguojia)";OleDbDataAdaptersdgj

Microsoft Access 数据库常规规格

access|数据|数据库 Microsoft Access 数据库常规规格属性 最大值 Microsoft Access 数据库 (.mdb) 文件大小 2 G 字节.不过,由于数据库可以包括其他文件中的链接表,所以它的大小仅实际上只受可用存储空间大小的限制. 数据库中的对象个数 32,768 模块(包括 HasModule 属性为 True 的窗体和报表) 1,000 对象名称的字符数 64 密码的字符个数 14 用户名或组名的字符个数 20 用户个数 255 Microsoft Acces

用ASP实现Access数据库查询

access|数据|数据库 ---- 本文着重介绍通过IIS4.0服务管理中ASP脚本语言实现访问Access数据库,至于如何创建系统DSN这里一带而过,有兴趣的读者自己可以去试一试. ----首先,创建一个Access数据库,其中含有姓名.部门名称.部门费用的字段名. ----其次,在安装IIS4.0的WWW服务器上,打开ODBC,创建系统DSN,数据源名ABC,选取对应的Access数据库,建立好后就可以开始写ASP程序了. ----根据需要我们想对Access数据库中的部门名称按照不同的部

用C#压缩和修复Access数据库

介绍 下面这段C# 代码可以用来压缩和修复Access数据库,不管它是一个简单的".mdb"ACCESS数据库还是一个".mdw"网络共享数据库,这个过程和你在用MS Access应用程序中使用的"工具-数据库实用工具-压缩和修复"时执行的操作完全一样.实例代码使用了"迟绑定"(运行中在内存中建立COM对象),这样就不需要在工程中加入COM引用了,也不需要在PC上安装MS Access应用程序.只需要一个Jet引擎(Jet引擎

Access数据库成功导入Oracle库方法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 这几天在做一个网站项目时需要把Access数据库中一个表导入Oracle库中,查了一下,现在有很多网页设计教程中给出了解决方案,但并不详细,如果照着做不能成功,现给出已成功导入的详细解决方案. 如下: 首先打开 控制面板-管理工具-数据源 (ODBC),添加一个数据源驱动程序为Oracle的用户DNS,并添入Data Source.Serve

vc怎么删除ACCESS数据库中数据?

问题描述 我的程序如下:_ApplicationExcelApp;WorkbookswbsMyBooks;_WorkbookwbMyBook;WorksheetswssMysheets;_WorksheetwsMysheet;RangergMyRge;//创建Excel2000服务器(启动Excel)if(!ExcelApp.CreateDispatch("Excel.Application",NULL))//??{AfxMessageBox("创建Excel服务失败!&qu

购买GoDaddy支持Access数据库的图文教程

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 Godaddy提供windows主机和linux主机,而最近有朋友反应,它们购买windows空间的database选项中,找不到access数据库,它们网站的ASP程序,上传到空间后,空间竟然不支持Acess数据库,真是悲剧!遇到这样的问题,如何进行解决呢?怎样才能购买支持access的godaddy主机呢? 1.打开Godaddy官方:w