在几个朋友给的源码中,有个项目是Model,我不知道该怎么叫他,看一些资料称为《业务实体》,他把数据表结合业务规则抽象为类,表中的字段都抽象为属性,我们对类及其类的属性操作,最终结果是操作数据库。
我的问题是:既然该项目实现了这些具体功能,比如插入数据,我可以调用该类的构造函数,应该就可以实现插入功能,为什么所有代码更本不是按我理解的意思操作?代码如下:
《model》代码:
public class UserData
{
private string _userID;//登陆ID
private string _password;//密码
         /// <summary>
/// 构造函数
/// </summary>
/// <param name="userID">登陆ID</param>
/// <param name="password">密码</param>
public UserData(string userID,string password)
{
_userID = userID;
_password = password;
}
/// <summary>
/// 登陆ID
/// </summary>
public string UserID
{
get{return _userID;}
set{_userID = value;}
} /// <summary>
/// 密码
/// </summary>
public string Password
{
get{return _password;}
set{_password = value;}
}
}
《页面调用》:
1,页面传值
INSERT(userID,password);
2。调用MODEL
INSERT(UserData userdata);
3。public bool Insert(UserData userdata)
  {
     //
     //创建参数数组并赋值
//
SqlParameter[] parms = new SqlParameter[] {
new SqlParameter(变量1,SqlDbType.NVarChar,100),
new SqlParameter(变量2,SqlDbType.NVarChar,100)}   
parms[0].Value = userdata.userID;
parms[1].Value = userdata.password;
bool ExecuteNonQuery(连接串,类型,parms )
——————————————————————————————————
以上的代码在第二步的时候不是通过属性的set写入数据库成功了吗?为什么还有执行第三步??

解决方案 »

  1.   

    属性的功能就是读和写的功能,既然通过model已经写入数据库了,为什么还要执行第三步在次写入数据库?我看很多资料都进行了第三步,不明白,请指点,谢谢
      

  2.   


    第一步:建立业务实体类第二步:在BLL层调用DAL层的具体数据插入方法(即Insert()方法),传入的参数是一个UserData实体第三步:你看到的Insert()方法是在DAL(数据访问层)定义的,进行ADO.NET数据库操作
      

  3.   


    你在set属性的时候,只是构造了一个UserData实体,并没有向数据库执行写入操作,必须调用具体的DAL层方法才可以实现
      

  4.   

    原来如此,fattycat(最爱胖猫)的意思是当set{_password = value;}时候,仅仅是构造了一个实体,不是真正的写入数据?非常感谢,
    那意思是我可以直接传页面的具体数值值到DAL(数据访问层),那Model还有什么用处?那不是成了为了实现模式而建立多余的代码?
      

  5.   


    使用Model,这样才是传说中的面向对象的程序设计  ^o^我们要实现的是业务逻辑与数据操作的完全分离,你可以看一下PetShop,为了实现业务逻辑和数据操作的分离,PetShop特意引入了接口层IDAL
      

  6.   


    你当然可以不使用model,甚至可以在页面中直接写入SQL语句进行数据库操作,效果都是可以实现的但我们要考虑更多的是扩展性和可维护性比如,今天的的项目使用的是SQL Server数据库,你就直接把对SQL Server操作的语句写在页面当中了。明天,客户要求,全部改用Orcale~~~~哈哈,你就完了,全部重新做吧
      

  7.   

    好的,传说中的面向对象的程序设计-_-,原来如此
    弱弱的问一句,PetShop是个什么系统,那里可以得到?:(俺是学习中的菜鸟
      

  8.   


    而引入了接口层之后,你可以为不同的数据库产品编写一个数据访问层(DAL),当客户说要改用Orcale的时候,你需要的只是编写一个Orcale专用的DAL层组件,继承IDAL层接口而已,而上层的业务逻辑由于调用的是IDAL接口进行数据操作,所以不会受到任何影响!
      

  9.   


    PetShop是微软提供的一个演示程序,用于演示其标准的ASP.NET应用程序体系结构现在最新的版本是PetShop4.0你可以在http://download.microsoft.com/download/8/0/1/801ff297-aea6-46b9-8e11-810df5df1032/Microsoft%20.NET%20Pet%20Shop%204.0.msi下载或者google一下petshop,资料很多
      

  10.   

    对不起了,只能够给20分,:(
    fattycat老师,3QY.