我知道这个问题已被提出,但我找不到任何有助于解决问题的方法。
我想将aspx
页面(Retete.aspx
)连接到Microsoft SQL数据库。我在Retete.aspx.cs
上收到此错误:
错误1命名空间“ProiectSera”中不存在类型或命名空间名称“GlobalClass”(您是否缺少程序集引用?) 错误指向这行代码:
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;
目标框架设为.net-4.5。
我该怎么做才能解决这个错误?
更新 我的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
UPDATE1 我的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);
}
}
}
答案 0 :(得分:1)
您的GlobalClass
位于名称空间ProiectSera.App_Code
。
所以班级名称为ProiectSera.App_Code.GlobalClass
请确保您在ProiectSera
命名空间中没有ProiectSera
课程,否则如果在{1}}上声明using ProiectSera
,则会尝试使用它(作为一般规则,不要将任何类命名为与命名空间相同的名称。
如果仍然无效,您可能想尝试使用global
命名空间:
global::ProiectSera.GlobalClass.Update(ValRefTempSol.Text, ValRefTempAer.Text);
并查看是否有效:如果它没有,并且GlobalClass
在同一个项目中,那么您还没有向我们展示其他内容
<强>更新强>
唯一想到的是,如果你肯定两个文件都在同一个项目/程序集上,那么GlobalClass.cs
实际上并没有被编译。确保Build Action
设置为Compile
(您可以在解决方案资源管理器中右键单击GlobalClass.cs
并选择Properties
)来查看构建操作。
答案 1 :(得分:1)
如果您使用的是VS.NET:
答案 2 :(得分:0)
由于您的调用方式,请检查 GlobalClass.cs 中的内容是否声明如下:
namespace ProiectSera
{
public static class GlobalClass
{
public static void Update(...)
{
// ...
}
}
}
GlobalClass
本身可能不一定是静态的,但方法确实如此,至少如果你想以你正在使用的方式使用它。
(我考虑将此作为评论,但代码格式化使我成为答案)
在问题更加完整后, 更新:
您应该使用ProiectSera.App_Code.GlobalClass.Update(...)
来调用该方法。
答案 3 :(得分:0)
确保以下内容......
using ProiectSera;
)放置了ProiectSera使用声明。假设这是正确的命名空间。检查GlobalClass类的命名空间,并在希望使用其功能的类中相应地使用它。然后,只需在代码中调用它,假设Update是GlobalClass的静态方法。
GlobalClass.Update(ValRefTempSol.Text, ValRefTempAer.Text);
编辑:鉴于您现在已发布了GlobalClass代码,您可以看到此类的命名空间为ProiectSera.App_Code
;。因此,您需要将其作为另一个类using ProiectSera.App_Code;
中的using语句。然后通过简单的GlobalClass.Update调用它,如上所述。
如果你不理解命名空间在C#中是如何工作的,那么我建议你检查一下(https://msdn.microsoft.com/en-us/library/dfb3cx8s.aspx)。