C# 我正在web应用程序中添加dll,但该dll无法访问类名。问题是什么?
我正在web应用程序中使用一个dll(NEWDAO.dll)。它有一个cs文件,我可以在web应用程序中访问该类名,但它没有出现什么问题,请给我任何建议 在NEWDAO中,名称空间类是DBConnection代码是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
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
和notDAO
您发布的所有内容都是标准的.NET,因此您现在没有使用dll类中的任何内容,您的意思是这样做吗?理论上,您现在所做的只是将类放置在同一命名空间中。您是如何将此dll添加到web应用程序的?是否确定您尝试使用的类是公共的?添加引用浏览在使用添加.aspx.cs文件后选择dll