使用模型层中的实体类来传入参数
如果传入的参数比较多
比如: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);
}
//感谢牛腩新闻发布系统