首页 新闻 搜索 专区 学院

三层中间,未将对象引用到实例

0
悬赏园豆:100 [已关闭问题] 关闭于 2011-07-06 15:52

BLL层/// <summary>
        ///  添加一个Zhuce对象
        /// </summary>
        /// <param name="zhuce">要添加的Zhuce对象</param>
        /// <returns>添加成功,返回true;否则返回false</returns>
  public bool Insert(Zhuce zhuce)
  {
           
            return izhuce.Insert(zhuce);
  }

这个izhuce的值为空,,本来应该要获得DAL层里面的值的、、、、该怎么解决让他过去DAL层里面的值

问题补充:

///
        ///  添加一个Zhuce对象
        ///
        ///  要添加的Zhuce对象
        /// 添加成功,返回true;否则返回false
  public bool Insert(Zhuce zhuce)
  {
    SqlParameter[] parameters = {
                                                              
                new SqlParameter("@Name",SqlDbType.NVarChar),
                new SqlParameter("@PassWord",SqlDbType.VarChar),
                new SqlParameter("@PassWords",SqlDbType.VarChar)};

            
   parameters[0].Value = zhuce.Name;
   parameters[1].Value = zhuce.PassWord;
   parameters[2].Value = zhuce.PassWords;
    
   int i = SQLHelper.ExecuteNonQuery(SQLHelper.connectionString, CommandType.StoredProcedure, "Zhuce_Proc_Insert", parameters);
  
   return i == 1 ? true : false;

这个是DAL层添加的代码、

///
        ///  添加一个Zhuce对象
        ///
        /// 要添加的Zhuce对象
        /// 添加成功,返回true;否则返回false
  public bool Insert(Zhuce zhuce)
  {
           
            return izhuce.Insert(zhuce);
  }

这个是BLL层的,,,就是这个BLL层里面的izhuce没有获取到上面DAL层里面的值,所以才会报,未将对象引用到实例的错

BZhuce bp = new BZhuce();
            Zhuce pp = new Zhuce();

            pp.Name = TextBox1.Text.Trim();
            pp.PassWord = TextBox2.Text.Trim();
            pp.PassWords = TextBox3.Text.Trim();


            if (this.TextBox4.Text.Equals(Session["CheckCode"]) && bp.Insert(pp))
            {
                Response.Write(" ");
            }
            else
            {
                Response.Write(" ");
            }

这是注册的代码

///
        ///  添加一个Zhuce对象
        ///
        /// 要添加的Zhuce对象
        /// 添加成功,返回true;否则返回false
  bool Insert(Zhuce zhuce);

这个是IDAL层的


        ///
        ///  创建IZhuce接口的实例
        ///
        /// IZhuce接口
        public static IZhuce CreateIZhuce()
        {
            string classname =  path + ".ZhuceDAL";
            return (IZhuce)Assembly.Load(path).CreateInstance(classname);
        }

这里是IDAL层

private IZhuce izhuce= null;
  
  /// <summary>
        ///  构造一个BZhuce对象
        /// </summary>
  public BZhuce()
  {
            izhuce = Factory.CreateIZhuce();
  }

请问还需要加什么东西哦,,,讲细一点

次时代的主页 次时代 | 初学一级 | 园豆:5
提问于:2011-06-28 15:38
< >
分享
所有回答(5)
0

izhuce是你DAL实例化的对象

马战鹏 | 园豆:432 (菜鸟二级) | 2011-06-28 15:48
存储过程执行错误了吧?
断点跟下。。这种错误非常常见。。
支持(0) 反对(0) 马战鹏 | 园豆:432 (菜鸟二级) | 2011-06-28 15:59
DAL类名 izhuce =new DAL类名(); //在BLL里写这样一句话!
支持(0) 反对(0) 马战鹏 | 园豆:432 (菜鸟二级) | 2011-06-28 18:11
0

你这个DAL对象izhuce在哪里实例化了?

要么就把你DAL层的方法写成静态的,这样直接调就行了,就不用实例化了。

镆铘 | 园豆:361 (菜鸟二级) | 2011-06-28 16:11
izhuce = Factory.CreateIZhuce();
应该是你通过反射创建实例出问题了,返回了null。调试一下。
支持(0) 反对(0) 镆铘 | 园豆:361 (菜鸟二级) | 2011-06-29 10:45
0

同上,izhuce在哪实例化呢

6哒忆夏 | 园豆:594 (小虾三级) | 2011-06-28 17:16
0

path是不是有问题吧。是配置呢?还是写死的?有值吗?断点调一下就知道了,逐步跟踪一下,看看你的那个factory有没有返回IZhuce的实例呢?

Virus-BeautyCode | 园豆:1619 (小虾三级) | 2011-06-29 11:53
0

要创建哪个程序集的反射的话,也要将对应的程序集进行添加引用的。

LZ应该是在反射层中没有对要进行反射的对象的那一层进行添加引用

magic_evan | 园豆:206 (菜鸟二级) | 2011-06-30 18:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册