刚做C#的项目,在数据库模块中关闭SqlDataReader问题,在线!!!

godblessyU 2003-10-21 10:54:31
public static SqlDataReader GetMyDataReader(string strSQL)
{
SqlCommand objCommand = new SqlCommand(strSQL,objConnection);
SqlDataReader objReader;
try
{
objReader = objCommand.ExecuteReader();
return objReader;
}
catch(System.Exception exp)
{
throw new Exception(exp.Message);
}

}
========================================================================
我在form中有个按钮,第一次点击好用,但因为第一次用完没关闭,所以再点击按钮就报错,如何解决
...全文
52 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
nxct 2003-10-21
  • 打赏
  • 举报
回复
try
{
objReader = objCommand.ExecuteReader();
return objReader;
}
catch(System.Exception exp)
{
throw new Exception(exp.Message);
}
finally //在这里不管有没有异常,都会执行,参见 msdn
{
SqlDataReader.Close();
}
downsome 2003-10-21
  • 打赏
  • 举报
回复
用dataSet
godblessyU 2003-10-21
  • 打赏
  • 举报
回复
在线啊
godblessyU 2003-10-21
  • 打赏
  • 举报
回复
在try中不能加,因为return后就不执行,在catch里加也不行,因为当执行catch里的代码时,此次点击没做出反应,有没有高手啊???就在我原程序中改
PlayIrrrr 2003-10-21
  • 打赏
  • 举报
回复
在函数中catch里,
if (objReader != null)
objReader.Close();

在函数外某个reader.

reader.Close();
liupeng1981 2003-10-21
  • 打赏
  • 举报
回复
SqlDataReader用完后
在try块中加就行了
godblessyU 2003-10-21
  • 打赏
  • 举报
回复
我知道SqlDataReader.Close();
但是我不知道在什么地方加SqlDataReader.Close();
chenqinzeng 2003-10-21
  • 打赏
  • 举报
回复
SqlDataReader.Close();
有空多看看CSDN的帮助,哪个很好的,
Sniper 2003-10-21
  • 打赏
  • 举报
回复
把SqlDataReader用完关掉呀。
SqlDataReader.Close();
asp_net 2003-10-21
  • 打赏
  • 举报
回复
public static SqlDataReader GetMyDataReader(string strSQL)
{
SqlCommand objCommand = new SqlCommand(strSQL,objConnection);
SqlDataReader objReader;
try
{
if(ojbReader.IsClosed==false) //加这里
objReader.Close();
objReader = objCommand.ExecuteReader();
return objReader;
}
catch(System.Exception exp)
{
throw new Exception(exp.Message);
}

}
michaelowenii 2003-10-21
  • 打赏
  • 举报
回复
确实要:SqlDataReader.Close();
当然不是在try{}中,因为你要return objReader。就要在用完了sqlDataReader 后调用。

Sniper 2003-10-21
  • 打赏
  • 举报
回复
楼上的解决有问题。

楼主是要把objReader传出去用的,不能直接调用Close(),而要在用完后关掉。
大致应该是:
SqlDataReader myReader = GetMyDataReader(……);
……用myReader操作数据……
myReader.Close();
不定项选择题(共14题,单选或多选): 一、一个HTML文档必须包含三个元素,它们是head、html和( )。 A.scriptB.bodyC.titleD.link 二、下面哪段javascript能弹出一个提示框?( ) A.document.alert(test) B.window.alert(test) C.document.alert('test ') D.window.alert('test ') 三、当鼠标放在一个链接上的css样式应该( )伪类来定义。 A.a:visitedB.a:linkC.a:hoverD.a:active 四、关于ASP.NET的代码隐藏文件的描述正确的是( )。 A.Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。该文件称作为“代码隐藏”文件,如果用C#创建,该文件将具有“.ascx.cs”扩展名 B.web窗体也是类 C.项目所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件 D.以上都不正确 五、下列ASP.NET语句( )正确地创建了一个与SQL Server数据库的连接。 A.SqlConnection con1 = new Connection(“Data Source = localhost; Trusted_Connection =Yes; Initial Catalog = myDB”); B.SqlConnection con1 = new SqlConnection(“Data Source = localhost; Trusted_Connection =Yes; Initial Catalog = myDB”); C.SqlConnection con1 = new OleDbConnection(“Data Source = localhost; Trusted_Connection =Yes; Initial Catalog = myDB”); D.SqlConnection con1 = new SqlConnection(Data Source = localhost; Trusted_Connection =Yes; Initial Catalog = myDB); 六、执行一次无返回值的数据删除,必须用到下面哪些对象? ( ) A.SqlConnectionB.SqlDataAdapterC.SqlCommandD.SqlDataReader 七、在ADO.NET,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是( ) A.insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行; B.ExecuteNonQuery()方法返回执行Sql语句所影响的行数。 C.Select操作的Sql语句只能由ExecuteReader()方法来执行; D.ExecuteReader()方法返回一个DataReder对象; 八、ASP.NET有多种维护状态的技术,以下哪种是保存在客户端的?( ) A.VIEWSTATEB.SESSIONC.APPLICATIOND.数据CACHE 九、Cookies的默认生命周期有多长? ( ) A.20分钟B.30分钟C. 一天D.随浏览器的关闭而失效 十、int[][] myArray=new int[3][]{ new int[3]{ 5, 6, 2 }, new int[5]{ 6, 9, 7, 8, 3 }, new int[2]{ 3, 2 }}; myArray[2][2]的值是( ) A.9B.2C.6D.越界 十一、要为了输出缓存的页面实现即时判断用户IP来路,可在以下哪种事件实现? ( ) A.Page.InitB.HttpApplication.BeginRequest C.Page.LoadD.以上都不是 十二、下面哪个SQL语句完全正确( ) A.Select count(*) from (select top 10 * from table order by bb) tb group by cc B.update set bb = bb + 1 from table C.Select count(*) from (select distinct * from table) tb group by cc D.delete * from table 十三、为了实现a.aspx的URL重写,下面哪个正则表达式替换可以实现?( ) A. Regex.Replace(sUrl, @“/(\d+).aspx”, “a.aspx?ID=$0”, RegexOptions.IgnoreCase) B. Regex.Replace(sUrl, @“/(\d+).aspx”, “/a.aspx?ID=$0”, RegexOptions.IgnoreCase) C. Regex.Replace(sUrl, @“/(\d+).aspx”, “a.aspx?ID=$1”, RegexOptions.IgnoreCase) D. Regex.Replace(sUrl, @“/(\d+).aspx”, “/a.aspx?ID=$1”, RegexOptions.IgnoreCase) 十四、下面javascript代码的输出结果是( ) var aa = new Array(1, 2, 4, 5, 3, 6); var c = 0; for (var i = 0; i < aa.length; ++i){ c += aa.pop(); } document.write(c); 提示:Array.pop()函数将数组内最后一个元素移除并返回该元素 A.7 B.14 C.21 D.以上皆不正确 填空题(共4题): 一、C#判断整型变量k是否偶数的语句: 二、有这样的枚举定义:public enum TrainType{ 空调, 快速, 新型, 卧铺 },为实现它的按位组合,你会分别赋予它们什么值?请用逗号按顺序分隔开 三、C#为了防止非本程序集的代码访问,可以用什么关键字修饰类或者类成员? 四、为了将table表内bb(datetime类型)字段的数据按年月降序输出,对应的SQL语句为 选择题答案: 1.B,2.D,3.C,4.BC,5.B,6.AC,7.C,8.A,9.D,10.D,11.B,12.AC,13.D,14.B 填空题答案: 1.(k & 1) == 0 或 k % 2 == 0 2.1,2,4,8(答案不定,看情况) 3.internal 4.select * from table order by year(bb) desc, month(bb) desc 1.new有几种用法 第一种:new Class(); 第二种:覆盖方法 public new XXXX(){} 第三种:new 约束指定泛型类声明的任何类型参数都必须有公共的无参数构造函数。 2.如何把一个array复制到arrayList里 foreach( object o in array )arrayList.Add(o); 3.datagrid.datasouse可以连接什么数据源 [dataset,datatable,dataview] dataset,datatable,dataview , IList 4.概述反射和序列化 反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型。然后,可以调用类型的方法或访问其字段和属性 序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。 5.概述o/r mapping 的原理 利用反射,配置 将类于数据库表映射 6.类成员有( )种可访问形式 可访问形式?不懂。 可访问性:public ,protected ,private,internal 7.用sealed修饰的类有什么特点 sealed 修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其他类的基类,则会发生编译时错误。 密封类不能同时为抽象类。 sealed 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。 8.列举ADO.NET的五个主要对象,并简单描述 connection,command,dataReader,trans,dataset ... 9.执行下面代码后: String strTemp ="abcdefg 某某某"; Int i System.Text.Encoding.Default.GetBytes(strTemp).Length; Int j = strTemp.Length; 问:i=(14 ) ;j=(11 ) i=(14 ) ;j=(11 ) 文两个字节 10.C#,string str = null 与 string str ="",请尽量用文字说明区别。(要点:说明详细的内存空间分配) string str ="" 分配空间 11.详述.NET里class和struct的异同! class:放在 ? struct放在? struct值传递 类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在“在堆栈上”或“内联”。细心的程序员有时可以通过聪明地使用结构来增强性能。 12.概述.NET里对 remoting 和 webservice 两项技术的理解和实际的应用。 远程逻辑调用,remoing接口只能用在.net 13.什么是code-behind技术 aspx and cs 14.概述三层结构体系 web/business/dataaccess 15.asp.net如何实现MVC模式,举例说明! web/business/dataaccess ---------------------------------------------------------------------------------------------------------- 1.面向对象的思想主要包括什么? 答:这个题范围太广,不知道说什么. 2.什么是ASP.net的用户控件 答:用户控件就是.ascx扩展名的东西喽,可以拖到不同的页面调用,以节省代码.比如登陆可能在多个页面上有,就可以成用户控件,但是有一个问题就是用户控件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自已写方法调整. 3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释? 答:装箱就是把值类型转成引用类型,从MS IL角度看好像是boxing,没记错的话是把值从堆栈转到堆.拆箱相反,重载就是指一个方法名同,参数个数不同,返回值可以相同的方法.CLR是通用语言运行时,其它的不清楚. 4.列举一下你所了解的XML技术及其应用 答:XML可是好东西,保存配置,站与站之间的交流,WEB SERVICE都要用它. 5.值类型和引用类型的区别?写出C#的样例代码。 答:结构是值类型,类是引用类型,所以传结构就是值类型的应用啦,传对象或类就是引用类型的,这个不用多写了吧. 6.ADO.net常用的对象有哪些?分别描述一下。 答:connection command sqladapter dataset datatable dataview等等.写不完了. 7.如何理解委托? 答:据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法. msdn2005是这样解释的: 委托具有以下特点: 委托类似于 C++ 函数指针,但它是类型安全的。 委托允许将方法作为参数进行传递。 委托可用于定义回调方法。 委托可以链接在一起;例如,可以对一个事件调用多个方法。 方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。 C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。 8.C#的接口和类有什么异同。 答:这个异同可多了,要说清楚还真不容易. 9.。net读写数据库需要用到哪些类?他们的作用 答:这个类自已可以写的啊,你是指基类吗?那configuration,sqlconnection,sqlcommand等都要用到. 10.UDP连接和TCP连接的异同。 答:前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连结. 11.ASP.net的身份验证方式有哪些?分别是什么原理? 答:form认证,windows集成认证等,原理不清楚. 12.进程和线程分别怎么理解? 答:进程是老子,线程是儿子,没有老子就没有儿子,一个老子可以有多个儿子.一个儿子可以成为别人的儿子,一个老子也可以为别的老子生儿子. 13.什么是code-Behind技术。 答:代码分离,这是个明智的东西,像ASP这样混成一堆很不爽.或者可以理解成HTML代码写在前台,C#代码写在后台.当然前台也有脚本,类的调用等,其实写在一起也是可以的. 14.活动目录的作用。 答:这个不明白.请明白的补充一下. 15..net读写XML的类都归属于哪些命名空间? 答:System.Xml 我自已写的就不一定了,嘿嘿. 16.解释一下UDDI、WSDL的意义及其作用。 答:什么东西? 17.什么是SOAP,有哪些应用。 答:SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境交换信息并执行远程过程调用的协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。这种相互通信采用的是XML格式的消息,具体请看:http://playist.blogchina.com/2521621.html 18.如何部署一个ASP.net页面。 答:随便啦,想直接上传就直接上传,想打包成EXE就打包,看个人喜好. 19.如何理解.net的垃圾回收机制。 答:GC?对象创建了总要清除啊,不然内存哪够用?
为达到最佳效果,推荐使用九网互联的ASP.net空间,支持ASP.net版本1.1和2.0在线切换、在线脚本映射、ASP.net具体错误信息在线查看。三、系统说明易想商城系统(升级,稳定版),是成都易想网络科技有限公司,基于先进的Asp.net推出的一套自主开发的基于Asp.Net+C#+Sql架构的网上商店系统,具有智能化扩展性和高稳定性。易想商城系统,是一套能够适合不同类型商城、超强功能,灵活多变的多功能在线商店系统,为您提供了一整套的在线开店解决方案。易想商城系统,网上商店系统除了拥有一般网上商店系统所具有的所有功能,还拥有着其它网店系统没有的许多超强功能。易想商城系统,是您网上开店,建立网上购物网站的首选系统。网站提供的风格可以自由切换,随时让你的网站漂亮,丰富起来商城新增文章CMS功能:可以自由扩展文章频道,包括后台文章频道的复制商城新增:商品字段自己定义扩暂显示,可以自由控制前台商品显示的字段,可扩展成其他的商店,前台页面自由控制商品显示的字段,同类商品对比功能(支持4个商品对比),让你的客户更能体验网站的人性化,新增首页静态生成HTML让你客户打开你的网站更快,新增相关商品,提供更丰富的商品介绍,高级搜索,让你找商品更方便。增强网站的优化功能,让你的网站在百度上轻易的就能找到。四、升级说明升级说明易想商城V1.0升级到V1.1 2007-01-10(1) 新增标签功能(2) 新增模版功能,对每个页面实现后台管理。(3) 新增自定义标签,让你标签的内容更加丰富和多元化。(4) 新增上传图片集管理模块能有效的节约空间。(5) 新增无限级分类移动分类功能。(6) 新增后台管理前台样式表。(7) 新增了商品评论功能。(8) 新增支付宝功能易想商城V1.1升级到V1.2 2007-03-05(1) 新增关键字搜索(2) 增合CV论坛(3) 增加对联广告(可在后台无限上传图片),幻灯片广告(4) 增加网站开关功能(5) 增加网站商品分类路径显示(无限递归)(6) 增加网站商品分类2级分类列表标签(7) 增加商品品牌管理,品牌分类和商品分类可平行指定(8) 增加商品的属性,修改商品列表标签,具有指定商品显示那些属性(9) 增加商品横排标签(10) 修改会员的Bug,升级会员心的页面全部为模版控制页面,(11) 修整帮助心不能修改页面,和添加分类(12) 增加在线MSN,阿里巴巴贸易通(13) 新增会员积分管理(14) 修改数据库备份Bug(15) 完成SQL数据库版本(16) 修正CSS漏洞(17) 增加在线数据库备份(18) 修正删除订单,不能删除订单的商品(19) 修正了后台对网站上传图片的显示错误地址易想商城V1.2升级到2.0 2007-4-4(1) 新增网站地图(2) 新增缺货登记(3) 新增商品对比功能(支持4个商品对比)(4) 新增单页分类功能(5) 增强新闻标签,包括图文显示(6) 新增高级搜索(7) 新增相关商品(8) 新增网银接口(9) 修正网站管理员添加时可以添加相同管理员的名称(10) 新增文章频道功能,提供对栏目的复制,可无限扩展网站栏目(11) 新增首页静态生成HTML(12) 修正新闻分类的删除引起的无法移动栏目(13) 修正商品分类的移动问题(14) 增加商品字段自己定义显示,可以自由控制前台商品显示的字段,可扩展成其他的商店(15) 会员等级无限添加(等级可以设置成和商品的价格挂钩)(16) 修正客户提交订单的时候,程序会重复提交一次订单(17) 修正商品评论不能删除(18) 修正在线服务不能删除的问题(19) 广告管理增加Flash广告(20) 新增模板的导入导出管理(可以添加官方提供的最新模板风格)(21) 修正前页在点搜索关键子的时候,会出现SqlDataReader关闭(22) 修正品牌标签的不能正常显示(23) 修正商品显示页面的不能收藏的问题(24) 修正前台订单的网银和支付宝的BUG(25) 修正了友情链接图片显示问题(26) 修正前台订单查询的BUG(27) 修正后台订单查询的BUG(28) 修正前台多处出现的SqlDataReader关闭(29) 增加网站关键字的优化(让百度收录你更容易)易想商城V2.0升级到2.1 2007-4-30(1) 新增文章频道复制功能(2) 文章内容静态Htm生成(3) 增加登陆JS(4) 加强后台商品的查询和后台商品的品牌查询(5) 新增首页静态生成HTML(6) 增加高级搜索功能(7) 增加后台栏目文章内容的单独生成和按ID生成(8) 在后台可以添加会员功能注意:详细标签功能请到官方网站或论坛查看。五、功能概要(一)、前台功能说明购物车 购物指南 我的帐户 注册会员 货登记 网站地图☆首页 ☆新闻专区 ☆全店商品 ☆会员心 ☆

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧