欢迎光临
我们一直在努力

给你个例子[.NET中三层构架开发实例 – 用户注册系统]-.NET教程,面向对象编程

建站超值云服务器,限时71元/月

数据库基类
using system;
using system.data;
using system.data.sqlclient;

namespace haisky.htjob
{
    /// <summary>
    /// dbclass 的摘要说明。
    /// </summary>
    public class dbclass
    {
        private string connectionstring;
        protected sqlconnection connection;
        public dbclass(string newconnectionstring)
        {
            connectionstring = newconnectionstring;
            connection = new sqlconnection(connectionstring);
        }
        public string connectionstring
        {
            get
            {
                return connectionstring;
            }
        }
        private sqlcommand buildquerycommand(string storedprocname,idataparameter[] parameters)
        {
            sqlcommand command = new sqlcommand(storedprocname,connection);
            command.commandtype = commandtype.storedprocedure;
            foreach (sqlparameter parameter in parameters)
                {
                    command.parameters.add(parameter);
                }
            return command;
        }
        private sqlcommand buildintcommand(string storedprocname,idataparameter[] parameters)
        {
            sqlcommand command = buildquerycommand(storedprocname,parameters);
            command.parameters.add(new sqlparameter("returnvalue",sqldbtype.int,4,
                parameterdirection.returnvalue,false,
                0,
                0,
                string.empty,datarowversion.default,null));
            return command;        
        }
        protected int runprocedure(string storedprocname,idataparameter[] parameters,out int rowsaffected)
        {
            int result;
            connection.open();
            sqlcommand command = buildintcommand(storedprocname,parameters);
            rowsaffected = command.executenonquery();
            result = (int)command.parameters["returnvalue"].value;
            connection.close();
            return result;
        }
        protected sqldatareader runprocedure(string storedprocname, idataparameter[] parameters )
        {
            sqldatareader returnreader;

            connection.open();
            sqlcommand command = buildquerycommand( storedprocname, parameters );
            command.commandtype = commandtype.storedprocedure;

            returnreader = command.executereader();
            return returnreader;
        }
        protected dataset runprocedure(string storedprocname, idataparameter[] parameters, string tablename )
        {
            dataset dataset = new dataset();
            connection.open();
            sqldataadapter sqlda = new sqldataadapter();
            sqlda.selectcommand = buildquerycommand( storedprocname, parameters );
            sqlda.fill( dataset, tablename );
            connection.close();

            return dataset;
        }
        protected void runprocedure(string storedprocname, idataparameter[] parameters, dataset dataset, string tablename )
        {
            connection.open();
            sqldataadapter sqlda = new sqldataadapter();
            sqlda.selectcommand = buildintcommand( storedprocname, parameters );
            sqlda.fill( dataset, tablename );
            connection.close();            
        }
    }
}

商务层基类(逻辑层)
using system;
namespace wrox.webmodules.business
{
    public class bizobject
    {
        public bizobject()
        {            }
    }
}

下面是用户注册系统开发的三层构架实例:数据库基类采用上面提供的代码。
1、    用户注册模块数据层开发:
using system;
using system.data;
using system.data.sqlclient;
using haisky.htjob;
using system.xml;
namespace haisky.htjob.accounts.accountsdata
{
    public class user : haisky.htjob.haiskydbobject
    {
        public user(string newconnectionstring) : base(newconnectionstring)
        {//直接路由连接字符串}
        public int create(string user_nm,string user_pwd)
        {
            int rowsaffected;
            sqlparameter[] parameters = {new sqlparameter("@user_nm",sqldbtype.char,16),
                                        new
sqlparameter("@user_pwd",sqldbtype.char,16)};
            parameters[0].value = user_nm;
            parameters[1].value = user_pwd;
            parameters[2].direction = parameterdirection.output;
            try
            {
                runprocedure("if_user_info",parameters,out rowsaffected);
            }
            catch
            {    }
            return (int)parameters[2].value;
        }
    }
}
2、用户注册商务层开发:
using system;
using system.configuration;
using haisky.htjob.accounts.accountsdata;
namespace haisky.htjob.accounts.accountbusiness
{
    public class user : haisky.htjob.haiskybizobject
    {
        int userid;
        string username;
        string userpwd;
        string strconn;
        public user()
        {
            strconn = configurationsettings.appsettings["strconn"];
        }
        public int careate()
        {
            accountsdata.user datauser = new accountsdata.user(strconn);
            userid = datauser.create(username,userpwd);
            return userid;
        }
        public int userid
        {
            get
            {
                return userid;
            }
            set
            {
                userid = value;
            }
        }
        public string username
        {
            get
            {
                return username;
            }
            set
            {
                username = value;
            }
        }
        public string userpwd
        {
            get
            {
                return userpwd;
            }
            set
            {
                userpwd = value;
            }
        }
    }
}
3、    用户注册表示层开发:
using system;
using system.collections;
using system.componentmodel;
using system.data;
using system.drawing;
using system.web;
using system.web.sessionstate;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.htmlcontrols;
using haisky.htjob.accounts.accountbusiness;

namespace haisky.htjob.modules.accounts
{
    public class register : system.web.ui.page
    {
        protected system.web.ui.webcontrols.textbox textbox1;
        protected system.web.ui.webcontrols.textbox textbox2;
        protected system.web.ui.webcontrols.table table1;
        protected system.web.ui.webcontrols.button button1;

        private void page_load(object sender, system.eventargs e)
        {
            table1.rows[0].cells[0].visible = false;
        }
        #region web form designer generated code
        override protected void oninit(eventargs e)
        {
            initializecomponent();
            base.oninit(e);
        }    
        private void initializecomponent()
        {    
            this.button1.click += new system.eventhandler(this.button1_click);
            this.load += new system.eventhandler(this.page_load);
        }
        #endregion
        private void button1_click(object sender, system.eventargs e)
        {
            int i;
            htjob.accounts.accountbusiness.user businessuser = new htjob.accounts.accountbusiness.user();
            businessuser.username = textbox1.text;
            businessuser.userpwd = textbox2.text;
            i = businessuser.careate();
            response.write (i.tostring());                         //这里输出返回值
        }
    }
}
4、    该系统调用的存储过程:
create procedure if_user_info
(@user_nm char(16),@user_pwd char(16),@user_id int output)
as
    insert user_info(user_nm,user_pwd) values(@user_nm,@user_pwd)
set @user_id = @@identity
    if @@error > 0
        begin
        raiserror (insert of article failed, 16, 1)
        return 99
    end
go

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 给你个例子[.NET中三层构架开发实例 – 用户注册系统]-.NET教程,面向对象编程
分享到: 更多 (0)

相关推荐

  • 暂无文章