C++程序员学习用C#写网站(三)
来源:互联网 发布:软件cmmi 编辑:程序博客网 时间:2024/05/11 12:41
第6天、
前一天写了好多属性,set,get;编译一下报错误,后来检查出来 private int iproperty;这一句后面多了一个分号。继续写登陆,我的想法是,写一个数据库操作类,名字叫SQLServerOperator,里面写个通用方法,名字叫ExecuteReader,传进去一个查询语句字符串,返回一个SqlDataReader,然后不同的调用者使用自己的方式把SqlDataReader转换为业务对象,ExecuteReader也是静态方法;我的Login是User类的一个静态方法,他构造查询语句,调用SQLServerOperator.ExecuteReader,获得一个SqlDataReader,然后Read()一下,把里面的数据读出来,付给一个new出来的User对象。
哼哧哼哧费了九牛二虎之力代码写完,编译通过,满心欢喜F5,输入账号和密码,点击“登录”......,页面上显示错误,说什么SqlDataReader.Read()抛出异常,这下子心里面哇凉哇凉的......,经过一番折腾,明白了我的错误在哪里,我在SQLServerOperator.ExecuteReader里面把connection关掉了,然后把SqlDataReader返回,然后在调Read方法,就会报这个错;换句话说SqlDataReader不能在connection.Close之后Read......,C#程序员看到,一定会笑话我这个低级错误吧!!!看看老项目里面代码怎么写的,用了一个委托(C++里面的函数指针),SQLServerOperator.ExecuteReader接收一个函数,获得SqlDataReader之后调用这个函数,这个函数根据不同的需要把SqlDataReder中的数据转成诸如User这样的对象。改吧,嘛咪嘛咪轰,改好了。跑一下,成功哩,Yeah、Yeah、Yeah、Yeah、Yeah......
中间还有一个小插曲,我刚开始写的SqlConnection和SqlCommand对象,我用完之后,不仅调用Close方法,还调用Dispose方法,后来我看网上的代码,还有旧项目的代码,没人主动去调用Dispose,再想到C#有内存回收机制......,虽然没有仔细研究过,本着入乡随俗的心态,我也不主动调用Dispose了。
- C++程序员学习用C#写网站(三)
- C++程序员学习用C#写网站(二)
- C++程序员学习用C#写网站(四)
- 学习用的网站
- 学习用的网站
- 学习用网站
- C 指针一例全解(自己学习用)
- acm学习用的网站
- 写了10+年的VC,现在根据公司需要,从头学习用C#做网站,用这里记下学习过程中的点点滴滴吧
- 学习用Dtree写树形目录树
- 想学习用Java写服务器代码
- 学习用pyhon写hive udf
- 学习用ASP。net做网站
- 从文本文件中一行行读出数据,写进数据库(自己学习用)
- (hibernate之三)session的delete方法(转的学习用)
- iOS学习用代码写界面,不用ib
- 来几个学习用的网站给大家参考下
- C和C++语言函数相互调用(转载学习用)
- 1、用表格或导图总结rfid理论基础知识要点。
- mmap说明
- 在Ubuntu 14.10上配置git server
- JDBC连接数据库
- (第一次作业)RFID与物联网的关系
- C++程序员学习用C#写网站(三)
- 2、论述rfid与物联网关系。
- 第三周 项目一 三角形类1
- 一个js闭包问题的解答
- 学习总结
- Eliminate Witches!2011年北京网络赛
- linux如何查看端口被谁占用
- Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
- 编写一个函数reverse_string(char * string) 实现:将参数字符串中的字符反向排列。