当前位置:编程学习 > C#/ASP.NET >>

非常急,用三层结构却找不到命名空间

各位大侠,最近在学三层,但是我把三层都构建好了,也都添加引用了,为什么在表示层还是应用不到业务逻辑层的命名空间,在业务逻辑层也引用不到数据访问层的命名空间呢?我都添加了引用了啊?希望各位高手给解答,谢谢,郁闷了一天了! --------------------编程问答-------------------- 设置  Public --------------------编程问答-------------------- 看下你的项目属性中的程序集名称和默认命名空间,最好都改成一样的,以前也碰到过。 --------------------编程问答-------------------- 都改成一样了。真是郁闷 --------------------编程问答-------------------- 基本上应该是没有public出来
也可以发出来大家看看 --------------------编程问答-------------------- 不好意思,应该怎么public出来呢? --------------------编程问答--------------------
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace SQLHelper
{
  // public  class DataOperate   就是在这里加哦!public  
    {
      private string strconn;
      private SqlConnection conn;
      public DataOperate()
      {
          strconn = System.Configuration.ConfigurationManager.AppSettings["constr"].ToString();
          conn = new SqlConnection(strconn);
      }
      public void OpenConnection()
      {
          conn.Open();
      }
      public void CloseConnection()
      {
          if (conn != null)
          {
              if (conn.State != ConnectionState.Closed)
              {
                  conn.Close();
              }
          }
      }
      private SqlCommand CreateCmd(string procname, SqlParameter[] paralist)
      {
          SqlCommand cmd = new SqlCommand();
          cmd.CommandText = procname;
          cmd.CommandType = CommandType.StoredProcedure;
          cmd.Connection = conn;
          if (paralist != null)
          {
              foreach (SqlParameter para in paralist)
              {
                  cmd.Parameters.Add(para);
              }
          }
          return cmd;
      }
      public int ExecuData(string procname, SqlParameter[] paralist)
      {
          OpenConnection();
          SqlCommand cmd = CreateCmd(procname, paralist);
          int n = cmd.ExecuteNonQuery();
          CloseConnection();
          return n;
      }
      public SqlDataReader GetDataReader(string procname, SqlParameter[] paralist)
      {
          OpenConnection();
          SqlCommand cmd = CreateCmd(procname, paralist);
          return cmd.ExecuteReader(CommandBehavior.CloseConnection);
      }
      public DataSet GetDataSet(string procname, SqlParameter[] paralist)
      {
          SqlCommand cmd = CreateCmd(procname, paralist);
          SqlDataAdapter da = new SqlDataAdapter(cmd);
          DataSet ds = new DataSet();
          da.Fill(ds);
          return ds;

      }
    }
}
--------------------编程问答-------------------- 有好多种可能性:
 1.类名前加public
 2.添加完引用后还要"using 命名空间"
你是找不到那个命名空间,那你就是第二种情况了
  --------------------编程问答-------------------- 方法没有设置成public是一种可能,你不引用命名空间,直接实例化类试试! --------------------编程问答-------------------- 右击数据访问层的工程,然后右击属性,查看第一项,"预设命名空间",看看那里是不是SQLHelper
--------------------编程问答-------------------- 右击数据访问层的工程,然后点击属性,查看第一项"应用程序"的"预设命名空间",看看那里是不是SQLHelper  --------------------编程问答-------------------- 底层的方法设置为public
还有就是添加引用,代码中要
using ...
引用你引用的命名空间,然后才可以使用。 --------------------编程问答-------------------- public

using --------------------编程问答-------------------- 感觉你的业务逻辑层和数据层之间的引用关系没有搞好 --------------------编程问答--------------------
引用 7 楼 lylymb 的回复:
有好多种可能性: 
1.类名前加public 
2.添加完引用后还要"using 命名空间" 
你是找不到那个命名空间,那你就是第二种情况了 

UP --------------------编程问答-------------------- 应该是命名空间的问题,仔细检查下,是不是个别字母不对,比如i、l之类的!检查仔细了,肯定不会有问题啊! --------------------编程问答-------------------- 应该用public定义,在生成DLL。
using A;
namespace A
{
public AA
{
}
}
看啊可能petshop和dot bbs --------------------编程问答-------------------- 应该用public定义,在生成DLL。
using A;
namespace A
{
public AA
{
}
}
看看petshop和dot bbs --------------------编程问答-------------------- 已阅 --------------------编程问答-------------------- 在项目下面   有个    “引用”   右键  “添加引用”   
如果你的  三层都在同一个项目内   则点  “项目”   下面会有你要添加的 引用  命名空间
如果你的  三层不在同一个项目   则点  浏览   找到项目要引用的路径就可以了 
! --------------------编程问答-------------------- 楼主真厉害!
不知道用public --------------------编程问答-------------------- 你肯定没Usingb 吧!看 --------------------编程问答-------------------- 你确定你是“引用”了,而不是添加了“现有项” --------------------编程问答-------------------- 好多类默认的没有加public,你的添加 --------------------编程问答-------------------- 程序文件是不是在你定义的文件夹下面(销售/frmSell.cs...)。
看一下你程序文件的默认命名空间是不是前面带着文件夹的中文字(销售.**)?
或者右键属性直接修改工程的命名空间 --------------------编程问答--------------------
引用 7 楼 lylymb 的回复:
有好多种可能性:
1.类名前加public
2.添加完引用后还要"using 命名空间"
你是找不到那个命名空间,那你就是第二种情况了

差不多就是这原因了 --------------------编程问答--------------------
引用 19 楼 newhuya123 的回复:
在项目下面 有个 “引用” 右键 “添加引用”  
如果你的 三层都在同一个项目内 则点 “项目” 下面会有你要添加的 引用 命名空间
如果你的 三层不在同一个项目 则点 浏览 找到项目要引用的路径就可以了 

应该是没有添加引用造成的错误。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,