C# 我正在web应用程序中添加dll,但该dll无法访问类名。问题是什么?

C# 我正在web应用程序中添加dll,但该dll无法访问类名。问题是什么?,c#,asp.net,.net-assembly,C#,Asp.net,.net Assembly,我正在web应用程序中使用一个dll(NEWDAO.dll)。它有一个cs文件,我可以在web应用程序中访问该类名,但它没有出现什么问题,请给我任何建议 在NEWDAO中,名称空间类是DBConnection代码是 using System; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; using System.Data; namespace NEWDAO { cl

我正在web应用程序中使用一个dll(NEWDAO.dll)。它有一个cs文件,我可以在web应用程序中访问该类名,但它没有出现什么问题,请给我任何建议

在NEWDAO中,名称空间类是DBConnection代码是

  using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
namespace NEWDAO
{
    class DbConnection
    {
        private int _EmpName;
        private string _Name;
        private decimal _Salary;
        private DateTime _CreatedDate;
        public bool Flag = false;
        DataSet ds = new DataSet();
        SqlConnection m_Con = new SqlConnection("Server=*******,dataSource=Test,user name=sa,password=*******");
        SqlCommand m_Cmd = new SqlCommand();

        public int EmpNo
        {
            get
            {
                return _EmpName;
            }
            set
            {
                _EmpName = value;
            }
        }

        public string Name
        {
            get
            {
                return _Name;
            }
            set
            {
                _Name = value;
            }
        }

        public decimal Salary
        {
            get
            {
                return _Salary;
            }
            set
            {
                _Salary = value;
            }
        }

        public DateTime CreatedDate
        {
            get
            {
                return _CreatedDate;
            }
            set
            {
                _CreatedDate = value;
            }
        }
        /// <summary>
        /// Insert the Emp values
        /// </summary>
        public bool EmpInsert()
        {
            Flag = false;
            m_Con.Open();
            SqlCommand m_Cmd = new SqlCommand("usp_EmpInsert", m_Con);
            m_Cmd.CommandType = CommandType.StoredProcedure;
            m_Cmd.Parameters.AddWithValue("@EmpName", EmpNo);
            m_Cmd.Parameters.AddWithValue("@Name", Name);
            m_Cmd.Parameters.AddWithValue("@Salary", Salary);
            m_Cmd.Parameters.AddWithValue("@CreatedDate", CreatedDate);
            if (m_Cmd.ExecuteNonQuery() >= 0)
            {
                Flag = true;
                return Flag;

            }
            else
            {
                return Flag;
            }
            m_Con.Close();
        }

        /// <summary>
        /// Display the values
        /// </summary>
        public bool EmpSelect(out DataSet oDS)
        {
            Flag = false;
            m_Con.Open();
            SqlCommand m_Cmd = new SqlCommand("usp_EmpInsert", m_Con);
            m_Cmd.CommandType = CommandType.StoredProcedure;
            SqlDataAdapter ad = new SqlDataAdapter("usp_EmpInsert", m_Con);
            ad.Fill(ds, "EMP");
            if (ds != null)
            {
                oDS = ds;
                Flag = true;
                return Flag;
            }
            else
            {
                oDS = null;
                return Flag;
            }
            m_Con.Close();

        }
    }
}
使用系统;
使用System.Collections.Generic;
使用系统文本;
使用System.Data.SqlClient;
使用系统数据;
名称空间NEWDAO
{
类DbConnection
{
私有内部名称;
私有字符串\u名称;
私人十进制工资;
私有日期时间_CreatedDate;
公共布尔标志=假;
数据集ds=新数据集();
SqlConnection m_Con=newsqlconnection(“服务器=******,数据源=Test,用户名=sa,密码=*******”;
SqlCommand m_Cmd=new SqlCommand();
公共int EmpNo
{
得到
{
返回_EmpName;
}
设置
{
_EmpName=值;
}
}
公共字符串名
{
得到
{
返回_Name;
}
设置
{
_名称=值;
}
}
公共十进制工资
{
得到
{
返回工资;
}
设置
{
_工资=价值;
}
}
公共日期时间创建日期
{
得到
{
返回_CreatedDate;
}
设置
{
_CreatedDate=值;
}
}
/// 
///插入Emp值
/// 
公共图书馆
{
Flag=false;
m_Con.Open();
SqlCommand m_Cmd=新的SqlCommand(“usp_empiert”,m_Con);
m_Cmd.CommandType=CommandType.StoredProcess;
m_Cmd.Parameters.AddWithValue(“@EmpName”,EmpNo);
m_Cmd.Parameters.AddWithValue(“@Name”,Name);
m_Cmd.Parameters.AddWithValue(“@Salary”,Salary);
m_Cmd.Parameters.AddWithValue(“@CreatedDate”,CreatedDate);
如果(m_Cmd.ExecuteNonQuery()>=0)
{
Flag=true;
返回标志;
}
其他的
{
返回标志;
}
m_Con.Close();
}
/// 
///显示值
/// 
公共布尔EmpSelect(输出数据集oDS)
{
Flag=false;
m_Con.Open();
SqlCommand m_Cmd=新的SqlCommand(“usp_empiert”,m_Con);
m_Cmd.CommandType=CommandType.StoredProcess;
SqlDataAdapter ad=新的SqlDataAdapter(“usp_EmpInsert”,m_Con);
临时填充(ds,“EMP”);
如果(ds!=null)
{
oDS=ds;
Flag=true;
返回标志;
}
其他的
{
oDS=null;
返回标志;
}
m_Con.Close();
}
}
}
多谢各位
hemanth

您需要添加一个
using
指令,该指令具有该类所在的名称空间,或者使用全名,包括名称空间

因此,如果完整类名为:

DAO.SourceWordDoc
添加一个:

using DAO;

或者使用全名-
DAO.SourceWordDoc

您需要添加一个
using
指令,该指令具有此类所在的命名空间,或者使用全名,包括命名空间

因此,如果完整类名为:

DAO.SourceWordDoc
添加一个:

using DAO;

或者使用全名--
DAO.SourceWordDoc

您还应该检查您的类是否是公共的。默认的访问修饰符是内部的

您还应该检查您的类是否为公共类。默认的访问修饰符是内部的

也许您的应用程序针对的目标框架与assemblie不同。 例如,对于WPF项目,检查

属性->应用程序->目标框架


可能您的DLL需要完整的框架,而您的应用程序只针对客户端配置文件。

可能您的应用程序针对的是不同于汇编的目标框架。 例如,对于WPF项目,检查

属性->应用程序->目标框架

您的DLL可能需要完整的框架,并且您的应用程序只针对客户端配置文件。

类应该可以从其他程序集访问。如果未指定访问修饰符,则为默认值

  • 将类设置为public(
    public class DbConnection

  • 添加对dll的引用

您可以通过以下方式访问该类

NEWDAO.DbConnection
或者您可以(
使用NEWDAO;
)直接访问
DbConnection
,类应该是从另一个程序集访问的。如果未指定访问修饰符,则为默认值

  • 将类设置为public(
    public class DbConnection

  • 添加对dll的引用

您可以通过以下方式访问该类

NEWDAO.DbConnection

或者您可以(
使用NEWDAO;
)并直接访问
DbConnection

您是如何将此dll添加到web应用程序的?您确定要使用的类是公共的吗?添加引用在添加.aspx.cs文件后使用DAO alsowell浏览选择dll的,因为您看到
DbConnection
类没有公共关键字,并且命名空间也是公共的
NEWDAO
和not
DAO
您发布的所有内容都是标准的.NET,因此您现在没有使用dll类中的任何内容,您的意思是这样做吗?理论上,您现在所做的只是将类放置在同一命名空间中。您是如何将此dll添加到web应用程序的?是否确定您尝试使用的类是公共的?添加引用浏览在使用添加.aspx.cs文件后选择dll