asp.net用三层架构如何实现数据的查询、删除以及录入信息,希望可以有实例说明,谢谢!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net用三层架构如何实现数据的查询、删除以及录入信息,希望可以有实例说明,谢谢!相关的知识,希望对你有一定的参考价值。

呼呼!亲爱的程序员你好,我也是个程序员,不过三层我写了很久了嘞,二楼的没有回答完整,因该是bin目录下面添加引用,然后选择项目,在把3层已用过来,下面是代码

实体层(model)

其实就是封装字段

namespace Cssmodel

    public class CssModel

    

        private string _Sid;//定义一个静态的变量

        /// <summary>

        /// 账号

        /// </summary>

        public string Sid//封装字段

        

            get  return _Sid; 

            set  _Sid = value; 

        

        private string _pwd;//定义一个静态的变量

        /// <summary>

        /// 密码

        /// </summary>

        public string Pwd//封装字段

        

            get  return _pwd; 

            set  _pwd = value; 

        

    

数据操作层(dal)

这个层写的就是连接数据库啊!数据库的增删改查代码啊,什么的

namespace CssDal

    /// <summary>

    /// 查询登陆添加用户操作类

    /// </summary>

    public class CjdengluDal

    

        /// <summary>

        /// 查询登陆

        /// </summary>

        /// <param name="_name">用户名</param>

        /// <param name="_pwd">密码</param>

        /// <returns></returns>

        public bool select(CssModel _mdl)//定义方法名为select,参数为_mdl

        

            bool f = false;//定义一个bool值 F,为假

            string _sql = string.Format("select * from guanliyuan where Szhanghao = '0' and Smima = '1'", _mdl.Sid, _mdl.Pwd);//SQL语句,调用参数

            DataTable ds = DBHelper.GetDataTable(_sql, null, CommandType.Text);//调用帮助类

            if (ds.Rows.Count > 0)//判断如果总行数大于0时,F为真

                f = true;

            return f;//返回一个f

        

        /// <summary>

        /// 添加用户

        /// </summary>

        /// <param name="_name">用户名</param>

        /// <param name="_pwd">密码</param>

        /// <returns></returns>

        public int insert(CssModel _mdl)//定义一个int的方法

        

            string _sql = string.Format("insert into guanliyuan (Szhanghao,Smima)values('0','1')", _mdl.Sid, _mdl.Pwd);

            return DBHelper.ExcuteBySQL(_sql, CommandType.Text, null);//调用帮助类

        

        /// <summary>

        /// 删除用户

        /// </summary>

        /// <param name="_Sid">用户名</param>

        /// <returns></returns>

        public int delete(int _Sid)//定义一个int的方法

        

            string _sql = string.Format("delete from guanliyuan where Sid = 0", _Sid);//SQL语句,调用参数

            return DBHelper.ExcuteBySQL(_sql, CommandType.Text, null);//调用帮助类

        

    

  /// <summary>

        /// 修改用户

    /// </summary>

        /// <param name="_mdl"></param>

        /// <returns></returns>

        public int UpdateAdmin(AdminModel _mdl)//定义一个int的方法,参数为_mdl

        

            string _s = "update guanliyuan set Szhanghao";//定义一个字符串,写入SQL语句

            _s += " = '0',Shaoma = '1',Smima = 2";//拼接

            _s += " where Sid in (3)";//拼接

            string _sql = string.Format(_s, _mdl.Sid, _mdl.Number, _mdl.Pwd, _mdl.Id);

            //定义字符串,传参

            return DBHelper.ExcuteBySQL(_sql, CommandType.Text, null);

            //调用帮助类,传参

        

注:帮助类是我自己写的,你要的话我给你,不过最好自己写

业务逻辑层(bll)

这个层也就是调用数据操作层的方法

namespace CssBll

    public class CssdengluBll

    

        /// <summary>

        /// 管理员登录,添加操作类

        /// </summary>

        CjdengluDal dal = new CjdengluDal();//实例化CjdengluDal类

        /// <summary>

        /// 管理员登录

        /// </summary>

        /// <param name="_name">用户名</param>

        /// <param name="_pwd">密码</param>

        /// <returns></returns>

        public bool login(CssModel _mdl)//定义一个bool的方法,方法名为login,参数为_mdl

        

            return dal.select(_mdl);//返回一个dal,调用select方法,传参

        

        /// <summary>

        /// 管理员添加

        /// </summary>

        /// <param name="_name">用户名</param>

        /// <param name="_pwd">密码</param>

        /// <returns></returns>

        public int Add(CssModel _mdl)//定义一个int的方法,方法名为Add,参数为_mdl

        

            return dal.insert(_mdl);//返回一个dal,调用insert方法,传参

        

        /// <summary>

        /// 管理员删除

        /// </summary>

        /// <param name="_mdl">用户名</param>

        /// <returns></returns>

        public int shanchu(int _Sid)//定义一个int的方法,方法名为shanchu,参数为_mdl

        

            return dal.delete(_Sid);//返回一个dal,调用delete方法,传参

        

    

 /// <summary>

        /// 修改管理员

        /// </summary>

        /// <param name="_mdl"></param>

        /// <returns></returns>

        public int Insert(AdminModel _mdl)//定义一个bool的方法,方法名为select,参数为_mdl

        

            return _dal.UpdateAdmin(_mdl);//返回一个dal,调用select方法,传参

        

下面是页面调用

using CssBll;//导入业务逻辑层

using Cssmodel;//导入实体层

public partial class SanCengDengLu : System.Web.UI.Page

    CssModel model = new CssModel();//实例化实体层

    CssdengluBll bll = new CssdengluBll();//实例化业务逻辑层

    protected void Page_Load(object sender, EventArgs e)

    

    

    protected void btndeng_Click(object sender, EventArgs e)

    

        

        string _name = txtname.Text.Trim();//获取账号框的值

        string _pwd = txtpwd.Text.Trim();//获取密码框的值

        model.Sid = _name;//赋值

        model.Pwd = _pwd;//赋值

        if (bll.login(model))//判断如果调用业务逻辑层的登陆方法成功的话

        

            Response.Write("登陆成功");//弹出一句话

        

        else

        

            Response.Write("登录失败");//弹出一句话

        

    

    protected void btndtian_Click(object sender, EventArgs e)

    

        string _name = txtname.Text.Trim();//获取账号框的值

        string _pwd = txtpwd.Text.Trim();//获取密码框的值

        model.Sid = _name;//赋值    

        model.Pwd = _pwd;//赋值

        if (bll.Add(model) > 0)//判断如果调用业务逻辑层的添加方法,返回的行数大于0的话

        

            Response.Write("添加成功");//弹出一句话

        

        else

        

            Response.Write("添加失败");//弹出一句话

        

    

    protected void btnshan_Click(object sender, EventArgs e)

    

   string _name = txtname.Text.Trim();//获取账号框的值

        model.Sid = _name;//赋值    

        if (bll.shanchu(Sid) > 0)//判断如果调用业务逻辑层的删除方法,返回的行数大于0的话

        

            Response.Write("删除成功");//弹出一句话

        

        else

        

            Response.Write("删除失败");//弹出一句话

        

    

           protected void btnshan_Click(object sender, EventArgs e)

    

        string _name = txtname.Text.Trim();//获取账号框的值

        string _pwd = txtpwd.Text.Trim();//获取密码框的值

        model.Sid = _name;//赋值

        model.Pwd = _pwd;//赋值

            if (_bll.Insert(_mdl) > 0)

            

 Response.Write("修改成功");//弹出一句话

            

            else

            

 Response.Write("修改失败");//弹出一句话

            

        

如果想用数据绑定控件(GridView,Repeater什么的)来绑定显示的话那么就如下(我用GridView演示)

              gvwlook.DataSource = _blls.Looks(); //调用业务逻辑层的GridView显示方法

        gvwlook.DataBind();

Looks的方法里面就写DataTable,如果你实在是看不懂帮助类的话,我还是在写一遍好了,

//查询

SqlConnection _con = new SqlConnection();//创建数据库连接对象

        _con.ConnectionString = "server = 独角戏-PC\\\\SQL2005;database = CKdb; uid = sa;pwd =sa123; ";//创建连接数据库字符串

        _con.Open();//打开数据库

        SqlCommand _cmd = new SqlCommand();//创建数据库操作对象

        _cmd.Connection = _con;

        _cmd.CommandText = "select * from xuexi";//SQL语句

        SqlDataReader dr = _cmd.ExecuteReader();//创建数据读取对象

     return dr

//添加

 SqlConnection _con = new SqlConnection();//创建数据库连接对象

        _con.ConnectionString = "server = 独角戏-PC\\\\SQL2005;database = CKdb; uid = sa;pwd =sa123; ";//创建数据库连接字符串

        _con.Open();//打开数据库

        SqlCommand _cmd = new SqlCommand();//创建数据库操作做对象

        _cmd.Connection = _con;

        _cmd.CommandText = "insert into xuexi(Slanmu,Stid)values('你家蛟哥四号','2')";//SQL语句

        int i = _cmd.ExecuteNonQuery();

 return  i;

//修改

  SqlConnection _con = new SqlConnection();//创建数据库连接对象

        _con.ConnectionString = "server = 独角戏-PC\\\\SQL2005;database = CKdb; uid = sa;pwd =sa123; ";//创建数据库连接字符串

        _con.Open();//打开数据库

        SqlCommand _cmd = new SqlCommand();//创建数据库操作对象

        _cmd.Connection = _con;

        string _sql = "update xuexi set ";//定义一个字符串,里面写入SQL语句

        _sql += "Slanmu = '你家蛟哥四号',Stid = '3'where Sid = 12";//拼接

        _cmd.CommandText = _sql;

        int i = _cmd.ExecuteNonQuery();

return  i;

//删除

 SqlConnection _con = new SqlConnection();//创建数据库连接对象

        _con.ConnectionString = "server = 独角戏-PC\\\\SQL2005;database = CKdb; uid = sa;pwd =sa123; ";//创建数据库连接字符串

        _con.Open();//打开数据库

        SqlCommand _cmd = new SqlCommand();//创建数据库操作对象

        _cmd.Connection = _con;

        _cmd.CommandText = "delete from xuexi where Slanmu = '你家蛟哥四号'";//SQL语句

        int i = _cmd.ExecuteNonQuery();

return  i;

好了,基本上就是这样了,我和你一样都是学生,大家有时间研究研究哦!我的QQ是1054709459,如果还是不懂的话,我写到你懂,ok???不过我觉得我的注释写的已经够全的了,要是看不懂,那真的是我表达有问题了,其实一个程序员并不是写代码有多牛,那这个程序员就有多牛,注释写的牛的程序员,那才是好的程序员,还有楼主,我不支持你用代码生成器,那东西是有一定编程经验的用才好,新手用的话,报个错都不知道怎么办,废话也说完了,题也写完了,还有一件事,请采纳

参考技术A 那你去下个完整的三层架构源码来学习。追问

有没有网址介绍

追答

搜索一下吧,如果没有可以用东软代码生成器,把生成的代码看懂,看三层之间是怎么调用的

追问

我就是用动软代码生成器生成的三层架构,现在让我苦恼的是不知道它们之间应如何调用?很快就要交作业了,我却一点头绪都没有

追答

不知你会SQL吗。
DataSet ds=new BLL.表明(). 方法();

参考技术B 很简单的就可以实现了。用listview这个控件,根本没什么技术问题!追问

界面我已经建好了,我是想要从数据库里面逐一的将数据调出来!

追答

调用数据库那是ado.net的技术了
很简单啊,俩种方法可以实现。在asp.net2.0的版本用普通的dataset方法,在3.5以后用强类型dataset来调用,非常简单

参考技术C 还是学习下三层吧!

以上是关于asp.net用三层架构如何实现数据的查询、删除以及录入信息,希望可以有实例说明,谢谢!的主要内容,如果未能解决你的问题,请参考以下文章

用三层架构写删除和不实现功能的添加

C#listView用三层架构怎么连接数据库

ASP.NET三层架构DAL层连接数据库的方法

ASP.NET MVC 的三层架构 + EF数据模型

asp.net中的三层架构是啥意思

C# asp.net WebForm 的三层架构配合ListView实现增删改查源码