第4天、继续写代码......
我要写用户登录,好,先写个User类。用vs的右键菜单,“添加新项”-->"类"-->设置好文件名然后“确定”,提示说什么要加个App_Code文件夹,百度一下,不是很明白,但是有人说不用App_Code,就会找不到自己写的类......,好吧,取消,右键菜单,“添加ASP.NET文件夹”-->App_Code,创建出来,在App_Code下面创建个子文件夹,旧代码里面叫“Module”,这里也叫“Module”,然后在他下面添加一个User.cs,在User类里面添加个静态方法Login(stirng Name, string Password)。
实现Login方法:先写好SQL语句,string SQL="select * from tbl_User"。啊,我还没有数据库呀,找到一个SQL Server(公司有现成的服务器),在上面建了一TestDB,创建一个tbl_User表。然后要Insert一条超级管理员信息,直接在数据库上Insert,报错“从字符串转换日期和/或时间时,转化失败”,tbl_User表有一个Birthday字段,我用了date类型,各种搞,搞不定,心里那个着急上火,把以前的同学在QQ上问来问去......,最终发现了问题,tbl_User表还有个LastLoginDateTime字段,是datetime类型,我insert了一个“尚未登录”......,不论如何,问题解决,数据插进去了。
一天又结束了,过得好快,其实也做了很多事情。
第5天、
看到原来代码是每次需要的时候创建一个数据库操作类实例,从web.config里面读取数据库连接字符串,然后使用。我就想,连接字符串写成静态属性不得了,这种数据也不会频繁改动,但是信息是加了密的,在什么地方读取并解密呢?印象里头有个Global.asax,百度一下先。baidu之后感觉能做,就用Global.asax吧。右键菜单“添加新项”,找了半天,没有Global.asax,这怎么添加呢?baidu,原来是“全局应用程序类”。好累啊,不过还好弄成了。接着修改web.config,把"<appSettings/>"替换成下面的代码:
<appSettings>
<!--数据库设置Start-->
<add key="ControlWebSite" value="server=192.168.10.11;database=TestDB;uid=sa;pwd=123456;"/>
<!--数据库设置End-->
</appSettings>
然后在Global.asax的Application_Start里写上
string strConnect = ConfigurationManager.AppSettings["ControlWebSite"];
又有问题了......,我想把读到的信息打出了,是怎么做呢?baidu......,用System.Diagnostics.Debug.Write(strConnect);
F5,嗯,连接字符串打出来了,我又把内容改了下,再试一次,打出来了和前次不同,程序起作用了。先用明文,加解密的事情以后再说吧。
接着要实现连接查询,以前用ADO的经验告诉我连接对象要认真管理,csdn站内搜索,这篇文章很不错:http://blog.youkuaiyun.com/dahaizhiliang/article/details/8625772;抄啊!抄了半天,完成了返回一个dr的代码,怎样取得dr的字段值来付给User对象呢?又要baidu,baidu真心有用处。好多问题啊。我的Birthday是个date类型字段,C#利用什么类型对应呢?要给类添加属性,原来的代码写法都是private int _intAge,我想写成private int _Age;然后set,get什么时候可以简写呢?看了些帖子,头昏脑涨,结果决定老老实实的全手写。new User对象的时候需不需要考虑内存不足呢?看大家的代码都是不考虑的,但......,我还是把所有new操作都try,catch住吧。
一天又完了哦......,今天也做了不少事情呢。