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();
}
请问还需要加什么东西哦,,,讲细一点
izhuce是你DAL实例化的对象
你这个DAL对象izhuce在哪里实例化了?
要么就把你DAL层的方法写成静态的,这样直接调就行了,就不用实例化了。
同上,izhuce在哪实例化呢
path是不是有问题吧。是配置呢?还是写死的?有值吗?断点调一下就知道了,逐步跟踪一下,看看你的那个factory有没有返回IZhuce的实例呢?
要创建哪个程序集的反射的话,也要将对应的程序集进行添加引用的。
LZ应该是在反射层中没有对要进行反射的对象的那一层进行添加引用