你的Dll是叫DataAccessLayer么,还是指定了DataAccessLayer命名空间?
你可以用在你出错的页面加入
using DataAccessLayer;
你可以用在你出错的页面加入
using DataAccessLayer;
解决方案 »
- 寻求一位师傅能带领
- 高手来帮帮忙啊
- 高分求一个能够在WinForm中使用的视频播放控件,要求支持的格式越多越好,象暴风影音一样。
- 请教一个有关EXT和JSON的问题
- 求救,奇怪問題!
- datagridview的问题
- 关于获取前页url地址的问题, 不是你想的简单
- 一个小问题!大家都来看看~有什么好的方法!
- 问大家一个傻问题,有了.net以后,我一直没有分清什么是做前台的,什么做后台的。
- C# 关于MDI窗体的问题求助!
- 在http://www.codeproject.com下的一个C#做的视频捕捉程序,如何改变默认设定的捕捉视频的大小?
- 如何加密我的源码,和组件,对与SNK文件如何取得他的私有密码,和共有密码,并且如何使用,请指教
References在Solution Explorer里面只有在References里面加载了这个DLL文件你才能Using 这个命名空间
1)首先,我是在项目中已经引用了这个DLL文件了.然后才用的using.
2)我没有改引入进来的项目的默认的命名空间名.也就是说它是和项目是同一个名称.
3)我有一个问题,"命名空间和类名称是不能重复"的吗? 我这里尽管没重复,但我在改来改去的过程中曾让他们重复过的.这样是不是会有问题.而且,大家没有回答我一个问题,我上面的程序难道是没有问题的吗? 我想,大家不分析这一块应该是默认程序没问题.我实在是找不出问题在哪了.现在老想可能是我这里的程序有问题.希望大家能再帮我分析一下.我用C#时间不是很长,我觉得我可能对它内部的某些机制还不太清楚.这里先谢过了.
namespace ConsoleApplication3
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class ConsoleApplication3
{
public void print()
{
System.Console.Out.WriteLine("hello world");
}
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
ConsoleApplication3 ob = new ConsoleApplication3();
ob.print();
//
}
}
}
就编译通过,同时结果为hello world. E:\工作目录\太原项目\WebManageSystem\businesslayer\DataBrowser.cs(7): 找不到类型或命名空间名称“DataAccessLayer(我的数据访问层的的项目的名称)”(是否缺少 using 指令或程序集引用?).
报这个错,说明你没引用好,我建议还是好好检查一下你的命名空间。看看是否引用正确。
就在“解决方案资源管理器“里边的“引用”上边点右键添加引用,然后再引用你自己的DLL。
1)using 项目名称.命名空间名;
2)using 命名空间名;
上面两种方式我都用了,但还是有如我题目所述的问题报错.
另外,我发现我原先的VB.NET的项目文件都生成在bin目录下的,而现在C#的DLL都生成在了Debug下了.为什么呢?
这样弄大家都不知道你的问题在那,只能猜测,要不然把你的全部程序,DLL部分和项目部分的代码都贴出来,我给你编译一下看看
================================
1.解决方案管理器中的引用:
让你能找到这个模块,DLL.可以使用它.
2.代码文件中的using,是省略你在程序中前面一大窜的命名空间.
如果1中没有引用进来,你在2中不管怎么调用,都不可能成功.因为它根本就找不到.
=======================================
所以,我一直怀疑我要引用的项目生成的就有问题.在粘这个项目的代码前,我简单说一下.我做的是"三层结构"的工程.现在我是将生成好DLL的"数据访问层"的项目往业务层的项目中引入时,报这样的错误.而且,"数据访问层"的项目新建时基于的模板是"windows服务".
我的"数据访问层"的项目的源代码如下:
===================================================
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.ServiceProcess;using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Xml;
using System.Data.OleDb;namespace DataAccess
{
public class Service1 : System.ServiceProcess.ServiceBase
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null; public Service1()
{
// 该调用是 Windows.Forms 组件设计器所必需的。
InitializeComponent(); // TODO: 在 InitComponent 调用后添加任何初始化
} // 进程的主入口点
static void Main()
{
System.ServiceProcess.ServiceBase[] ServicesToRun;
// 同一进程中可以运行多个用户服务。若要将
//另一个服务添加到此进程,请更改下行
// 以创建另一个服务对象。例如,
//
// ServicesToRun = New System.ServiceProcess.ServiceBase[] {new Service1(), new MySecondUserService()};
//
ServicesToRun = new System.ServiceProcess.ServiceBase[] { new Service1() }; System.ServiceProcess.ServiceBase.Run(ServicesToRun);
} /// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
this.ServiceName = "Service1";
} /// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
} /// <summary>
/// 设置具体的操作,以便服务可以执行它的工作。
/// </summary>
protected override void OnStart(string[] args)
{
// TODO: 在此处添加代码以启动服务。
}
/// <summary>
/// 停止此服务。
/// </summary>
protected override void OnStop()
{
// TODO: 在此处添加代码以执行停止服务所需的关闭操作。
}
#region "GetTreeData()方法" //----------------连结数据库,通过业务层被调用,返回所要的dataview --------------
public DataSet GetTreeData(string privateConnectionString, string sSQL,string TableName) {
OleDbConnection cn;
OleDbDataAdapter adptr=new OleDbDataAdapter();
//OleDbCommandBuilder cmdBldr;
try
{
//Check to see if this object has already been disposed
cn=new OleDbConnection(privateConnectionString);
DataSet ds=new DataSet();
adptr.SelectCommand=new OleDbCommand(sSQL,cn); if (cn.State==ConnectionState.Closed)
{
cn.Open();
}
//Depending on table name passed, Fill the new DataSet with the returned Data in a table
if (TableName=="")
{
adptr.Fill(ds);
} else
{
adptr.Fill(ds,TableName);
} cn.Close(); return ds;
} /*catch(Exception e)
{
MessageBox.Show(e.ToString());
}*/
catch ( Exception e)
{
throw e;
}
} public DataSet GetTreeData1()
{ // Create a new DataTable.
DataSet myDataSet=new DataSet();
// Create a new DataTable.
DataTable myDataTable = new DataTable("group");
DataColumn myDataColumn;
DataRow myDataRow;
// Create first column and add to the DataTable.
myDataColumn = new DataColumn();
myDataColumn.DataType= System.Type.GetType("System.Int32");
myDataColumn.ColumnName = "GROUP_ID";
myDataColumn.AutoIncrement = true;
myDataColumn.Caption = "ID";
myDataColumn.ReadOnly = true;
myDataColumn.Unique = true;
// Add the column to the DataColumnCollection.
myDataTable.Columns.Add(myDataColumn);
// Create second column.
myDataColumn = new DataColumn();
myDataColumn.DataType= System.Type.GetType("System.Int32");
myDataColumn.ColumnName = "PARENT_ID";
myDataColumn.AutoIncrement = false;
myDataColumn.Caption = "ChildItem";
myDataColumn.ReadOnly = false;
myDataColumn.Unique = false;
myDataTable.Columns.Add(myDataColumn);
// Create third column.
myDataColumn = new DataColumn();
myDataColumn.DataType= System.Type.GetType("System.String");
myDataColumn.ColumnName = "GROUP_NAME";
myDataColumn.AutoIncrement = false;
myDataColumn.Caption = "ParentID";
myDataColumn.ReadOnly = false;
myDataColumn.Unique = false;
myDataTable.Columns.Add(myDataColumn); myDataSet.Tables.Add(myDataTable); // Create three sets of DataRow objects, five rows each, and add to DataTable.
myDataRow = myDataTable.NewRow();
myDataRow["GROUP_ID"] = 1;
myDataRow["PARENT_ID"] = 0;
myDataRow["GROUP_NAME"] = "A" ;
myDataTable.Rows.Add(myDataRow);
myDataRow = myDataTable.NewRow();
myDataRow["GROUP_ID"] = 2;
myDataRow["PARENT_ID"] = 0;
myDataRow["GROUP_NAME"] = "B" ;
myDataTable.Rows.Add(myDataRow);
myDataRow = myDataTable.NewRow();
myDataRow["GROUP_ID"] = 3;
myDataRow["PARENT_ID"] = 1;
myDataRow["GROUP_NAME"] = "AA" ;
myDataTable.Rows.Add(myDataRow);
myDataRow = myDataTable.NewRow();
myDataRow["GROUP_ID"] = 4;
myDataRow["PARENT_ID"] = 1;
myDataRow["GROUP_NAME"] = "AB" ;
myDataTable.Rows.Add(myDataRow); return myDataSet;
}
#endregion #region RunSQLDataSet ____ 通过传入的SQL,返回给业务层showitems()等方法一个DataSet public DataSet runSQLDataSet(string privateConnectionString, string sSQL,string TableName)
{
OleDbConnection cn;
OleDbDataAdapter adptr=new OleDbDataAdapter();
//OleDbCommandBuilder cmdBldr;
try
{
cn=new OleDbConnection(privateConnectionString);
DataSet ds=new DataSet();
adptr.SelectCommand=new OleDbCommand(sSQL,cn); if (cn.State==ConnectionState.Closed)
{
cn.Open();
}
if (TableName=="")
{
adptr.Fill(ds);
} else
{
adptr.Fill(ds,TableName);
}
cn.Close();
return ds;
}
catch ( Exception e)
{
throw e;
}
}
#endregion
}
}
static void Main()
{
}Windows的工程项目里面也有
static void Main()
{
}
难道你不觉的有问题吗?
static void Main()
{
}
不能有对吗?我想是用项目模板生成项目时自动生成的.
我想你的问题应该搞定了
里面是不可能有main()的,多半你是开的一个Windows Application或者其他的什么项目