非常急,用三层结构却找不到命名空间
各位大侠,最近在学三层,但是我把三层都构建好了,也都添加引用了,为什么在表示层还是应用不到业务逻辑层的命名空间,在业务逻辑层也引用不到数据访问层的命名空间呢?我都添加了引用了啊?希望各位高手给解答,谢谢,郁闷了一天了! --------------------编程问答-------------------- 设置 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 --------------------编程问答-------------------- 感觉你的业务逻辑层和数据层之间的引用关系没有搞好 --------------------编程问答--------------------
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...)。
看一下你程序文件的默认命名空间是不是前面带着文件夹的中文字(销售.**)?
或者右键属性直接修改工程的命名空间 --------------------编程问答--------------------
差不多就是这原因了 --------------------编程问答--------------------
应该是没有添加引用造成的错误。
补充:.NET技术 , C#