命名空间中不存在类型或命名空间名称(是否缺少程序集引用?)

The type or namespace name does not exist in the namespace (are you missing an assembly reference?)

我知道这个问题已经被问过了,但是我找不到任何可以帮助解决我的问题的东西。

我想将我的 aspx 页面 (Retete.aspx) 连接到 Microsoft SQL 数据库。我在 Retete.aspx.cs:

上收到此错误

Error 1 The type or namespace name 'GlobalClass' does not exist in the namespace 'ProiectSera' (are you missing an assembly reference?) The error points to this line of code:

ProiectSera.GlobalClass.Update(ValRefTempSol.Text, ValRefTempAer.Text);

其中ProiectSera是项目名,GlobalClass是我对数据库进行操作的文件。

我的使用语句是:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ProiectSera;

目标框架设置为

我应该怎么做才能解决这个错误?

更新 我的 GlobalClass.cs 是:

using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.IO;
using ProiectSera;

using System.Data.Services;

namespace ProiectSera.App_Code
{
    public static class GlobalClass
    {
        static public void Update(string _param1, string _param2)
        {//function to update}
}
}

App_Code 是 GlobalClass.cs 所在的文件夹。我试过了

ProiectSera.App_Code.GlobalClass.Update(ValRefTempSol.Text, ValRefTempAer.Text); //

但我有同样的错误。然后我将 GlobalClass.cs 放在项目的根目录中。我还从 namespace ProiectSera.App_Code

中删除了 .App_Code

更新1 我的 Retete.aspx.cs 是

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ProiectSera;
using ProiectSera.App_Code;

namespace ProiectSera
{
    public partial class Retete : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnSave_Click(object sender, EventArgs e)
        {
            string intValRefTempSol;
            string intValRefTempAer;

 //           intValRefTempSol = ValRefTempSol.Text;
 //           intValRefTempAer = ValRefTempAer.Text;


   //         ProiectSera.App_Code.GlobalClass.Update(ValRefTempSol.Text, ValRefTempAer.Text);
            GlobalClass.Update(ValRefTempSol.Text, ValRefTempAer.Text);
}
}
}

确保以下...

  • 您的 Web 应用程序中有对 ProiectSera 的项目引用(如果它位于单独的库中)。如果 GlobalClass 在 Web 应用程序项目本身中,则您不需要这样做,但如果 GlobalClass 在同一解决方案或其他地方的单独库中定义,那么您将需要 add a reference 到该外部库在您的网络应用程序中。
  • 确保 ProiectSera 不应该是 ProjectSera(如果是打字错误)。
  • 确保您的 ProiectSera using 语句位于顶部 (using ProiectSera;)。假设这是正确的命名空间。检查您的 GlobalClass class 的命名空间,并在希望使用其功能的 class 中相应地使用它。
  • 然后,只需在您的代码中调用它,假设 Update 是 GlobalClass 的静态方法。

    GlobalClass.Update(ValRefTempSol.Text, ValRefTempAer.Text);

编辑:鉴于您现在已经发布了 GlobalClass 代码,您可以看到此 class 的命名空间是 ProiectSera.App_Code;。因此,您需要将其作为另一个 class using ProiectSera.App_Code; 中的 using 语句。然后通过简单的 GlobalClass.Update 调用它,如上所述。

如果您不了解命名空间在 C# 中的工作原理,那么我建议您查看此内容 (https://msdn.microsoft.com/en-us/library/dfb3cx8s.aspx)。

您的 GlobalClass 在命名空间 ProiectSera.App_Code 中。

所以 class 名字是 ProiectSera.App_Code.GlobalClass

确保在 ProiectSera 命名空间中也没有 ProiectSera class,否则如果在顶部声明 using ProiectSera,它将尝试使用它(作为一般规则,不要命名任何 class 与您的命名空间相同)。

如果仍然无效,您可能想尝试使用 global 命名空间:

global::ProiectSera.GlobalClass.Update(ValRefTempSol.Text, ValRefTempAer.Text);

看看是否有效:如果无效,并且 GlobalClass 在同一个项目中,则还有其他内容您没有向我们展示

更新

唯一想到的另一件事是,如果您确定两个文件都在同一个 project/assembly 上,那么 GlobalClass.cs 并没有被实际编译。确保 Build Action 设置为 Compile(您可以在解决方案资源管理器中右键单击 GlobalClass.cs 并选择 Properties 来查看构建操作)。

如果您正在使用 VS.NET:

  1. 右键单击项目中的“引用”文件夹。
  2. Select 添加引用。
  3. Select .NET 选项卡(如果不是 .NET Framework 程序集,则 select 浏览按钮)。
  4. 双击错误消息中包含命名空间的程序集。
  5. 按确定按钮。