使用模型层中的实体类来传入参数

如果传入的参数比较多

比如:public bool Update(string a,string b,string c,string d,string e) //插入新闻 就比较麻烦

      插入的多个字段是一个实体对象里的多个参数,这些写起来比较累赘,更好的写法是,把每个数据库中的表当做一个实体类,然后表里面的字段都是实体类的属性,在更新的时候只需传入一个实体类的实例对象。这样更加符合面向对象的思想。

最后可以这样写:public bool Update(News n)

模型层:所有的关于数据库中表的类放入模型层,也就是实体类

例子,

一个新闻类别实体类:

namespace Model    //单独建立一个类库Model,所有的实体类放入这个类库中

{

    public class Category

    {

        private string id; // 新闻主键,自增长

        public string Id

        {

            get { return id; }

            set { id = value; }

        }

        private string name; // 新闻类别名称

        public string Name

        {

            get { return name; }

            set { name = value; }

        }

        public Category(string id, string name) //实体类的构造方法

        {

            this.id = id;

            this.name = name;

        }}}

然后再DAL层中,就可以这样变化,

以前是:

public bool Update(string id,string caName)

{

   bool flag=false;

   string sql=”update category set [name]=@caName where id=@id rdquo; //SQL语句传入新闻类别ID

   SqlParameter[] paras=new SqlParameter[]{

          new SqlParameter(“@id”,id),

          new SqlParameter(“@caName”,caName)}; //把两个参数放入数组中

int res=sqlhelper.ExecuteNonQuery(sql,paras); //调用SqlHelper方法,根据传入的参数执行SQL语句

if(res>0)

   { flag=true;}

}

现在更改:  new SqlParameter(“@id”,id),

               new SqlParameter(“@caName”,caName)

        为:  new SqlParameter(“@id”,ca.id),

               new SqlParameter(“@caName”,ca.caName)

在界面时,通过.NET组件调用上面定义的方法:

protected void Button1_Click(object sender,EventArgs e)

{

  string caName=TextBox1.Text;

  string id =TextBox2.Text;  //通过界面的两个文本框传入新闻ID和新闻类别名参数

  Category ca=new Category(id,caName); //实例化Model中的新闻类别实体类,传入2个参数,记得前面要引用using Model;

  bool b=new CategoryDAO().Update(ca); //执行方法

  Response.Write(b);

 }

 

//感谢牛腩新闻发布系统

posted on 2010-04-19 11:21  jazyzheng  阅读(890)  评论(0编辑  收藏  举报