您现在的位置: 军旅同心-旅游自驾-军旅文学 >> 读书赏析 >> 学习园地 >> 电脑网络 >> 技术文章 >> 正文
asp.net高级教程(三)-实战篇
作者:采集员 文章来源:来源于网络 点击数: 更新时间:2005-9-10 12:37:00
nbsp;          if (a_enumCreateType == BBSUser.CreateType.Create)
                {
                    myCmd.CommandText = "insert into BBSUser(UserName ,

Password , Email , Homepage , Signature)"
                            + "values('" + a_strUserName + "','"

+ a_strPassword + "','"
                            + a_strEmail + "','" + a_strHomepage

+ "','" + a_strSignature + "')" ;
                }
                else
                {
                    myCmd.CommandText = "update BBSUser set Email='" +

a_strEmail
                        + "' , Homepage='" + a_strHomepage + "' ,

Signature='"
                        + a_strSignature + "' where username='" +

a_strUserName + "'";
                }
                myConn.Open() ;
                myCmd.ActiveConnection = myConn ;
                myCmd.ExecuteNonQuery() ;
                myConn.Close() ;

            }
            catch(SQLException exp)
            {
                throw(new Exception("数据库出错:" + exp.Message)) ;
            }

        }

        //取回密码
        public void GetPassword(string a_strUserName , string a_strEmail)
        {

            if (GetUser(a_strUserName) && m_strEmail == a_strEmail)
            {
                //发送Email
                System.Web.Util.MailMessage myMail = new MailMessage() ;
                myMail.From = "lyp@server1.domain" ;
                myMail.Subject = "取回您的密码" ;
                myMail.Body = "请牢记您的密码:" + m_strPassword ;
                myMail.To = a_strEmail ;
                SmtpMail.Send(myMail) ;
            }
            else
            {
                throw (new Exception("该用户不存在")) ;
            }
        }
        
    }
}

    通过前面的学习,你可能已经能够看懂这个类定义的大部分内容,那些是成员变量,那些是属性,那些是方法都可以理解了,在这里需要解释的只有以下两部分内容,首先看这段代码:
        
public enum CreateType
{
    Create = 0 ,
    Modify
}
    这段代码的作用是创建BBSUser类的一个枚举变量,写过c程序的朋友很容易理解,建立这个枚举变量的作用是简化记忆,用容易记忆的名称代替值,比如上边这个定义,当在方法CreateUser里作为第一个参数时,BBSUser.CreateType.Create实际的值是0,代表这个方法的目的是创建用户,而如果是BBSUser.CreateType.Modify,则代表目的是修改用户资料。显而易见,用if (a_enumCreateType == BBSUser.CreateType.Create)这样的语句比用if (a_intCreateTYpe == 1)更容易记忆,最大限度减少出错的可能。

    另外一个要解释的内容是:你可能已经注意到在类的定义中有两个 GetUser方法的定义,其作用域和返回值都相同,只是参数类型不同。没错,这种做法叫重载(override),是并且只能是面向对象程序语言实现多态性的基本方法,那么这样做有什么好处呢?就是根据参数不同由类自己决定应该调用那个正确的方法,这样讲可能有些抽象,那么举个例子来说吧,这个GetUser方法的作用是取得用户资料,那么它可以通过用户名来取得资料,也可以通过用户ID来取得,如果不用函数的重载,那么我们需要建两个函数,可能一个叫GetUserFromName(string a_strName) , 而另一个是GetUserFormID(int a_intID),在调用时
需要判断一下决定调用那个方法,象这样:
if ( BBSUser.ID != "")
{
  GetUserFromID(BBSUser.ID) ;
}
else if(BBSUser.Name != "")
{
  GetUserFromName(BBSUser.Name) ;
}

    以上两种方法孰优孰劣恐怕已经不用我说了吧。
    好了,既然我们已经创建好BBSUser对象,下面就可以利用它来进行对用户的操作了。

上一页  [1] [2] [3] 


更多
免责声明:作品版权归所属媒体与作者所有!!本站刊载此文不代表同意其说法或描述,仅为提供更多信息。如果您认为我们侵犯了您的版权,请告知!本站立即删除。有异议请联系我们。
文章录入:烟灰缸    责任编辑:烟灰缸 
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
| 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 网站地图 | 版权申明 | 网站公告 | 管理登录 |