2011-09-15 18 views
0

我在web應用程序中使用dll(NEWDAO.dll)。它有一個CS文件,我可以訪問類名的Web應用程序,但它不來有什麼問題,請給我任何建議我在web應用程序中添加了dll,但該dll無法訪問類名是什麼問題?

在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(); 

     } 
    } 
} 

謝謝 hemanth

+0

你是如何將這個DLL添加到你的Web應用程序? –

+0

您確定您嘗試使用的課程是公開的嗎? – MattDavey

+0

添加參考瀏覽選擇使用DAO添加.aspx.cs文件後的DLL也 – hmk

回答

1

類應該從public訪問另一個程序集。如果未指定訪問修飾符,則默認爲Internal

  • 設置類公共(public class DbConnection

  • 添加引用您的DLL

你可以訪問這個類的波紋管

NEWDAO.DbConnection 

或者你可以add a using directivesusing NEWDAO;)和訪問DbConnection直接

0

您需要添加一個using指令,該指令具有該類所在的名稱空間,或使用全名(包括名稱空間)。

所以,如果類的全名是:

DAO.SourceWordDoc 

要麼添加:

using DAO; 

或者使用全名 - DAO.SourceWordDoc

+0

@hmkmudiam - 你確定這是正確的命名空間嗎?你如何添加參考?這個類是什麼名字空間? – Oded

+0

名字空間是DAO,班級名稱是DbConnection – hmk

+0

@hmkmudiam - 班級是公開的嗎?你可以請添加你試圖解決問題的代碼嗎? – Oded

2

您還應該檢查一下您的班級是否公開。默認訪問修飾符是內部的。

+0

如何顯示默認訪問修飾符是內部的。 – hmk

+0

除非你指定訪問修飾符,如公共,私人等......你的類默認會有「內部」訪問修飾符,這將阻止你從不同的程序集中挑選你的類 –

+0

知道修飾符請參閱任何代碼錯誤, – hmk

0

也許你的應用程序針對的是不同的目標框架。 例如一個WPF項目,檢查

屬性 - >應用程序 - >目標框架

可能你的DLL需要完整的框架和你的應用程序只針對客戶端配置文件。