在C#中, OleDbDataReader dr运行时不读,求解!!!

问题描述

在listbox中,里面显示的文字只能点击第一个(只有一列),之前运行都没问题,但双击listbox出现事件在里面写代码后就出现此问题,新写的代码注释掉问题依旧存在。以下是代码:privatevoidForm药品名称查询_Load(objectsender,EventArgse){List<string>list=newList<string>();DataSetds=newDataSet();stringsqlstr="select*fromdrugName";stringstrAccessConn=ConfigurationSettings.AppSettings["Constr"];OleDbDataReaderdr;OleDbConnectionmyAccessConn=newOleDbConnection(strAccessConn);OleDbCommandmyAccessCommand=newOleDbCommand(sqlstr,myAccessConn);myAccessConn.Open();dr=myAccessCommand.ExecuteReader();while(dr.Read()){list.Add((string)dr["中文名称"]);}//ds=DataAccess.retSet(sqlstr);this.lstDrugName.DataSource=list;this.lstDrugName.DisplayMember="中文名称";}privatevoidbutton显示_Click(objectsender,EventArgse){stringstr=lstDrugName.SelectedItem.ToString();stringstrr="select药物编码,中文名称,英文名称,别名,适应症,药效学,不良反应fromdrugNamewhere中文名称='"+str+"'";//DataSetds=newDataSet();//ds=DataAccess.retSet(strr);textBox显示窗口.Text="";handlehc=newhandle();OleDbDataReaderdr=hc.selectdn(strr);List<string>list=newList<string>();while(dr.Read()){list.Add("药物编码:");list.Add((string)dr["药物编码"]);list.Add("中文名称:");list.Add((string)dr["中文名称"]);list.Add("英文名称:");list.Add((string)dr["英文名称"]);list.Add("别名:");if(dr["别名"]==System.DBNull.Value){list.Add("");}else{list.Add((string)dr["别名"]);}list.Add("适应症:");list.Add((string)dr["适应症"]);list.Add("药效学:");if(dr["药效学"]==System.DBNull.Value){list.Add("");}else{list.Add((string)dr["药效学"]);}list.Add("不良反应:");list.Add((string)dr["不良反应"]);}for(inti=0;i<list.Count;i++){textBox显示窗口.Text+=list[i]+"rn"+"rn";}textBox疾病名称.Text=list[3].ToString();textBox英文名称.Text=list[5].ToString();}

解决方案

解决方案二:
不清楚LZ说的意思不读是没数据。。还是报错了。。睡觉去了。。困了。。
解决方案三:
帮顶
解决方案四:
可能是没有数据在DataReader对象的Read方法读取数据之前,应该使用DataReader对象的HasRows方法判断一下是否有数据if(dataReader.HasRows){while(dataReader.Read()){}}

解决方案五:
个人估计这句也有问题this.lstDrugName.DisplayMember="中文名称";

时间: 2024-08-02 17:34:13

在C#中, OleDbDataReader dr运行时不读,求解!!!的相关文章

java-JavaCompiler中run方法运行时抛出NullPointerException异常

问题描述 JavaCompiler中run方法运行时抛出NullPointerException异常 解决方案 解决方案二: 解决方案三: 参考:http://blog.csdn.net/liu578182160/article/details/25103905

【最近面试遇到的一些问题】运行时异常与一般异常有何异同

Throwable 是所有 Java 程序中错误处理的父类 ,有两种资类: Error 和 Exception .    Error :表示由 JVM 所侦测到的无法预期的错误,由于这是属于 JVM 层次的严重错误 ,导致 JVM 无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息. Exception :表示可恢复的例外,这是可捕捉到的. Java 提供了两类主要的异常 :runtime exception 和 checked exception . check

RHCE :如何进行包过滤、网络地址转换和设置内核运行时参数

在这篇文章(RHCE 系列第二部分),我们首先介绍红帽企业版 Linux 7(RHEL)中包过滤和网络地址转换(NAT)的原理,然后再介绍在某些条件发生变化或者需要变动时设置运行时内核参数以改变运行时内核行为. RHCE 第二部分:网络包过滤 RHEL 7 中的网络包过滤 当我们讨论数据包过滤的时候,我们指防火墙读取每个试图通过它的数据包的包头所进行的处理.然后,根据系统管理员之前定义的规则,通过采取所要求的动作过滤数据包. 正如你可能知道的,从 RHEL 7 开始,管理防火墙的默认服务是 fi

iOS学习之Objective-C 2.0 运行时系统编程

0 导言 本主主要内容包括: 1.概述 2.参考 3.运行时系统的版本和平台 4.和运行时系统的交互 5.消息 6.动态方法解析 7.消息转发 8.类型编码 9.属性声明 1 概述 Objective-C语言将决定尽可能的从编译和链接时推迟到运行时.只要有可能,Objective-C总是使用动态的方式来解决问题.这意味着Objective-C语言不仅需要一个编译器,同时也需要一个运行时系统来执行编译好的代码.这里的运行时系统扮演的角色类似于 Objective-C语言的操作系统,Objectiv

RHCE 系列(二):如何进行包过滤、网络地址转换和设置内核运行时参数

正如第一部分("设置静态网络路由")提到的,在这篇文章(RHCE 系列第二部分),我们首先介绍红帽企业版 Linux 7(RHEL)中包过滤和网络地址转换(NAT)的原理,然后再介绍在某些条件发生变化或者需要变动时设置运行时内核参数以改变运行时内核行为. RHCE 第二部分:网络包过滤 RHEL 7 中的网络包过滤 当我们讨论数据包过滤的时候,我们指防火墙读取每个试图通过它的数据包的包头所进行的处理.然后,根据系统管理员之前定义的规则,通过采取所要求的动作过滤数据包. 正如你可能知道的

易错点 final 运行时数据区 原子操作

1.final作为对象成员存在时,必须初始化:但是,如果不初始化,也可以在类的构造函数中初始,因为java允许将数据成员声明为final,却不赋初值.但是,blank finals必须在使用之前初始化,且必须在构造函数中初始化   2.运行时数据区包括:虚拟机栈区,堆区,方法区,本地方法栈,程序计数器 虚拟机栈区 :也就是我们常说的栈区,线程私有,存放基本类型,对象的引用和 returnAddress ,在编译期间完成分配. 堆区 , JAVA 堆,也称 GC 堆,所有线程共享,存放对象的实例和

为什么c程序中创建了数据文件,再次打开源代码运行时数据没了?

问题描述 为什么c程序中创建了数据文件,再次打开源代码运行时数据没了? 为什么c程序中创建了数据文件,再次打开源代码运行时数据没了? http://blog.csdn.net/hackbuteer1/article/details/6573488# 就是这个通讯录的代码,在里面创建通讯录后,再次打开运行显示通讯录时就提示通讯录为空. 解决方案 写入文件是否错误,用winhex或者ultraedit看看写文件本身有没有写对. 如果没有,就是写的问题,如果对的,那么就是读的问题.再具体调试有问题的程

Asp.Net中页面运行时动态载入的UserControl内元素的事

在Asp.Net页面的开发过程中,我们肯定经常会用到自定义的UserControl来复用部分页面元素,我们有两种使用UserControl的方式 1.在设计时往页面里添加需要的UserControl(最常用的就是从SolutionExplorer拖ascx到设计页面) 此种情况下,如果将UserControl放置在runat=server的html标签中,将可能导致UserControl内的元素事件处理不能正确执行. 例如:我们有时用一个div作为边框包含了需要的UserControl,而出于在

运行时修改Web.config中的元素值 zhenyu(原作)

大家都知道Asp.Net提供了一个WebApplication的配置文件web.config,让我们可以很方便地设置Web应用程序,另外还可以在appSettings节中增加一些我们常要使用的单元,如数据库连接串等,利用System.Configuration.ConfigurationSetting类我们可以很容易读取这些单元的值,但是要改变这些值就需要一些技巧了,下面我就来告诉大家如何在运行时利用System.Management中的类去改变这些单元的值. 现假设您有一个WebApplica