三层架构, 在DAL层调用 DbHelperSQL.RunProcedureGo方法
DAL层RunProcedureGo方法:
DbHelperSQL类:
在BLL层调试无法进入DAL层,直接抛异常, 说找不到方法。 我已经试过删除引用、清理解决方案、重新生成各层, 重启VS, 都不行。
能在VS里定位到该方法,编译也没问题, 但调试时就是找不到。
搞了一上午了。 江湖救急。。。
我用.net Reflector反编译Bin目录下的DbHelperSQL类, 发现有这个方法啊, 这是为啥。
别用 asp.net,建一个 Console 或者窗体项目,然后你再调用 trans.dbUtility.DbHelperSQL.RunProcedureGo 试试。
问题解决了。 太奇怪了, 一个解决方案中6个项目,
之前输出窗口的生成消息明明写的是6个成功, 0个跳过,0个失败。
我在解决方案中新建了个console的项目后, 再重新生成解决方案时, web层就报错了, 改正里面的错误, 就可以了。
这有点意思。。。还是无法解释……
看见parameters那个实参下的红色波浪线了没有,参数类型不对,所以运行提示找不到方法。
你最上面那句修改成
IDataParameter[] parameters = {
new sqlparameter
}
string rowsMessege = ""; IDataParameter[] parameters = { new SqlParameter("@username", SqlDbType.VarChar,50), new SqlParameter("@autoid", SqlDbType.VarChar,50), new SqlParameter("@powerid", SqlDbType.Int,4), new SqlParameter("@recive", SqlDbType.VarChar,50), new SqlParameter("@phone", SqlDbType.VarChar,15), new SqlParameter("@address", SqlDbType.VarChar,512), new SqlParameter("@ProductList", SqlDbType.VarChar,800), new SqlParameter("@remarks", SqlDbType.VarChar,800), new SqlParameter("@invoice", SqlDbType.Bit), new SqlParameter("@mReturnMSG", SqlDbType.VarChar,500)}; parameters[0].Value = username; parameters[1].Value = autoid; parameters[2].Value = powerid; parameters[3].Value = recive; parameters[4].Value = phone; parameters[5].Value = address; parameters[6].Value = productList; parameters[7].Value = remarks; parameters[8].Value = invoice; parameters[9].Direction = ParameterDirection.Output; int count = DbHelperSQL.RunProcedureGo("[t_A_order_submit]", parameters, out rowsMessege); if (count != 0) return rowsMessege; else return "0";
改了也一样啊。
@奋奋奋: 看你的错误信息,就是找不到
trans.dbUtility.DbHelperSQL.RunProcedureGo 了,你还是得看看是命名空间还是DLL版本得问题了。
@爱编程的大叔:
DAL和dbUtility都在同一个解决方案, 引用的是解决方案中的项目。
我现在在DBUtility的DbhelperSQL类中新建其它方法, 通通都提示找不到,,,,,,
我已经清空了bin, 重新引用了, 重新生成了, 还是不行。
但是在VS中, 可以F12定位到该方法, 在该方法上查找使用也能找到使用者。
刚才我把DBUtility这个项目的程序集版本改了下, 现在查看DAL引用的, 引用的版本正确:
又检查了遍DBUtility中所有类的命名空间, namespace 通通都是tansar.DBUtility
结果还是不行, 这该如何是好……
@爱编程的大叔:
问题解决了。 太奇怪了, 一个解决方案中6个项目,
之前输出窗口的生成消息明明写的是6个成功, 0个跳过,0个失败。
我在解决方案中新建了个console的项目后, 再重新生成解决方案时, web层就报错了, 改正里面的错误, 就可以了。
这有点意思。。。还是无法解释……
怎么解决的