c# 问题,求救 ,很奇怪

问题描述

namespaceLSQLClass{省略部分代码。。。。publicclassSQLData{publicstaticSqlDataReaderdataReader(stringsqlstr){SqlDataReaderdr=null;try{openConnection();comm.CommandText=sqlstr;comm.CommandType=CommandType.Text;dr=comm.ExecuteReader(CommandBehavior.CloseConnection);}catch{try{dr.Close();closeConnection();}catch{}}returndr;}}然后进行调用省略部分代码usingSystem.Data.SqlClient;usingLSQLClass;省略部分代码this.DdlMenu.Items.Clear();this.DdlMenu.Items.Add(newListItem("所有产品类别","0"));SqlDataReaderdr=SQLData.dataReader("select*fromYT_FLwhereFL_DL=2");while(dr.Read()){this.DdlMenu.Items.Add(newListItem(dr["FL_Name"].ToString(),dr["FL_ID"].ToString()));}dr.Close();出错信息“/”应用程序中的服务器错误。--------------------------------------------------------------------------------未将对象引用设置到对象的实例。说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息:System.NullReferenceException:未将对象引用设置到对象的实例。源错误:行60:this.DdlMenu.Items.Add(newListItem("所有产品类别","0"));行61:SqlDataReaderdr=SQLData.dataReader("select*fromYT_FLwhereFL_DL=2");行62:while(dr.Read())行63:{行64:this.DdlMenu.Items.Add(newListItem(dr["FL_Name"].ToString(),dr["FL_ID"].ToString()));源文件:g:wwwrootyuntaimanageMProduce.aspx.cs行:62堆栈跟踪:[NullReferenceException:未将对象引用设置到对象的实例。]manage_MProduce.eProduceM()ing:wwwrootyuntaimanageMProduce.aspx.cs:62manage_MProduce.Page_Load(Objectsender,EventArgse)ing:wwwrootyuntaimanageMProduce.aspx.cs:27System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtrfp,Objecto,Objectt,EventArgse)+14System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Objectsender,EventArgse)+35System.Web.UI.Control.OnLoad(EventArgse)+99System.Web.UI.Control.LoadRecursive()+50System.Web.UI.Page.ProcessRequestMain(BooleanincludeStagesBeforeAsyncPoint,BooleanincludeStagesAfterAsyncPoint)+627不是经常出现,一直刷新页面就会出现这个错误,求救啊!!!什么原因,谢谢各位!

解决方案

解决方案二:
是不是dr的资源没释放?
解决方案三:
查询结果存在空值。
解决方案四:
dr["FL_Name"].ToString(),dr["FL_ID"].ToString()确定这两个都取到值了吗
解决方案五:
好象dr就已经没值了吧
解决方案六:
那请问我应该怎么做,怎么调用?使用的数据库类
解决方案七:
dr的值为空了跟踪调试看下把断点打在这:行61:SqlDataReaderdr=SQLData.dataReader("select*fromYT_FLwhereFL_DL=2");你把问题重现,看为什么值为空了
解决方案八:
你的看下openConnection();还有你的COMM设置SQL连接了吗?
解决方案九:
不是一直出现这个问题的,偶尔出现,刷新页面过多就会出现,共同调用的一个类,重启下IIS就会正常
解决方案十:
引用6楼weifei_tlp的回复:

dr的值为空了跟踪调试看下把断点打在这:行61:SqlDataReaderdr=SQLData.dataReader("select*fromYT_FLwhereFL_DL=2");你把问题重现,看为什么值为空了

空值了
解决方案十一:
调用的是静态类吧,哈哈,我以前也遇到这种莫名奇妙的问题。改成非静态类就不会出现这种情况了
解决方案十二:
对,静态类,不知为何,莫名其妙
解决方案十三:
改为单例模式,取代静态类
解决方案十四:
没法解决啊!

时间: 2024-10-01 22:43:58

c# 问题,求救 ,很奇怪的相关文章

java-新手问一个很奇怪的问题

问题描述 新手问一个很奇怪的问题 class Demo { int num = 1; int add = 2; Demo() { num = 5; add = 6; } void show() { System.out.println("Fu num="+num+" Fu add="+add); } } class DemoA extends Demo { DemoA() { this.num = 3; this.add = 4; } void show() { S

编译-很奇怪的“error C1083: 无法打开包括文件”!

问题描述 很奇怪的"error C1083: 无法打开包括文件"! 程序的事情真是无奇不有,昨天碰到一个问题,真是百思不得其解,编译时报告我所写的一个头文件的引用找不到,查了 配置属性->C/C++->常规->附加包含目录,是正常的,目录本来就加在里面了,更怪的是昨天碰到第一次,后来我在那个目录下建另一个头文件,然后将总是说找不到的头文件的内容copy过去,再引用到新的头文件,正常了,最后我干脆删掉总说找不到那个头文件,然后重命名新的头文件为原找不到文件的名称,也正常

android-Android很奇怪棘手的问题,setText有时不起作用

问题描述 Android很奇怪棘手的问题,setText有时不起作用 遇到一个很操蛋的问题,在有一个fragment里面调用控件的setText()的时候.偶尔不起作用,但是在这之后调用getText输出的log确是正确的.这个问题还不好重现,90%的时候都是没问题的.昨天很奇怪的是第一次打包后启动应用,都起作用,关掉后再次启动应用,又不起作用的了.不知道有没有遇到过的 解决方案 setText 没起作用,但getText能得到值,很显然是UI没有刷新过来而已 解决方案二: 10%的出现概率,已

app-resion报错很奇怪,明明已经加载到累了

问题描述 resion报错很奇怪,明明已经加载到累了 resin 报错,哪位大神可以指点一二 [15-03-10 22:38:38.778] {main} java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory in EnvironmentClassLoader[web-app:production/webapp/default/ROOT] at com.caucho.loader.Dynam

c语言 单片机-keil4开发中遇到的一个很奇怪的问题。

问题描述 keil4开发中遇到的一个很奇怪的问题. void main(){ // uchar test_i; const uchar timp_button=0xfF; //this value is that the button havn't sticked uchar n_delay; //delay unsigned char j=0; unsigned char i; intend_initiation(); //调用时间设定程序 while(1){ if((hour==alarm_

java-大神进来帮看看,一个很奇怪的问题

问题描述 大神进来帮看看,一个很奇怪的问题 代码如下,偶尔会出现数据库未更新的问题,但是看日志里面提交sql的日志已经打印出来,sql语句单独拿出来执行也没问题,我是真搞不明白了,大神求助啊! 解决方案 有可能是因为表字段的关联关系或者表字段的大小限制,是否非空,数值范围的限制 解决方案二: catch后,把exception输出到日志中,不就知道报的什么错了么? 插入失败的可能原因太多了

java-invalid type code: AC 很奇怪

问题描述 invalid type code: AC 很奇怪 最近在学习网络通信.然后弄一个服务器端不断监听,客户端连接,然后也处于不断监听服务端返回的消息.本来应很简单.但在客户端的监听线程里.第一次发送消息,服务器收到,并原消息返回,没问题.第二次,服务器能收到,但返回,客户端没收到,并出现:invalid type code: AC 这样都异常. 在网上查了好多问题,基本就两种,一种是 ObjectInputStream 多次定义,一种是 序列化问题.但是我两种都坚持尝试,都是不行. 如下

产品经理是个很奇怪的岗位

本文根据自己做产品的经验,提炼出4点思考分享给大家 产品经理是个很奇怪的岗位,好像大多数人都能做,因为每个人对某个产品都有自己的看法,都能提出一些意见和想法,甚至能设计实现原理;也好像大多数人都做不好产品经理,因为互联网上成千上万个产品,大部分是垃圾,没几个产品是用户真心觉得很不错的. 我做产品经理,还不到两年,以前十来年一直在做技术.之前做技术的时候,我很看不上产品经理.当时想:产品经理自己什么都实现不了,每天就是提点想法,而且想法还经常不靠谱,如果哪天裁员,产品经理的位置最危险了;但等我转来

结构体数组-C++中一个很奇怪的数组

问题描述 C++中一个很奇怪的数组 static const AP_Scheduler::Task scheduler_tasks[] PROGMEM = { { ins_update, 1, 1000 }, { one_hz_print, 50, 1000 }, { five_second_call, 250, 1800 }, }; 注:AP_Scheduler是一个类,Task是这个类的结构体成员,一下是Task的定义: struct Task { task_fn_t function; u