这是一个常见的错误,通常我能够解决它。
我有一个班级:
HierarchyData.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
namespace CT_WMT.App_Code
{
public class HierarchyData
{
string sqlConnectionString = ConfigurationManager.ConnectionStrings["SnaggingMasterConnection"].ConnectionString;
public DataTable GetHierarchyData()
{
using (SqlConnection connection = new SqlConnection(sqlConnectionString))
{
SqlCommand command = new SqlCommand("sp_GetHierachy", connection);
command.CommandType = CommandType.StoredProcedure;
DataTable dt = new DataTable();
try
{
command.Connection.Open();
dt.Load(command.ExecuteReader());
}
catch (Exception ex)
{
string errorMessage = ex.Message.ToString();
}
return dt;
}
}
}
}
这是我的网络表单:
我想我只是错过了它,它就在我面前!
答案 0 :(得分:1)
您需要使用完全限定的HierarchyData
namespace
试试这个:
CT_WMT.App_Code.HierarchyData myClass = new CT_WMT.App_Code.HierarchyData();
DataTable dt = myClass.GetHierarchy();
答案 1 :(得分:1)
系统无法区分HierarchyData页面(全名CT_WMT.Secure.HierarchyData.HierarchyData
)和HierarchyData数据加载类(全名CT_WMT.App_Code.HierarchyData
)。
你可以:
使用全名:
CT_WMT.App_Code.HierarchyData myClass = new CT_WMT.App_Code.HierarchyData();
DataTable dt = myClass.GetHierarchyData();
为HierarchyData声明数据加载类
的别名using HierarchyDataLoader = CT_WMT.App_Code.HierarchyData;
...
HierarchyDataLoader myClass = new HierarchyDataLoader();
DataTable dt = myClass.GetHierarchyData();
重命名其中一个或两个,以便每个类都有一个唯一的名称,例如:将Page
后缀添加到页面,或Loader
后缀添加到加载程序类。
答案 2 :(得分:0)
您的两个部分类位于不同的命名空间中,使它们成为不同的类型。它们需要位于同一名称空间中才能成为相同类型的部分定义。他们这两个都需要partial
个关键字。
您还应该评估您是否真的希望这些类型成为同一类的部分定义;考虑简单地使用两种不同的类型,其中完全独立的类型负责此数据库查询。
您还应避免捕获异常并对其执行任何操作。如果您没有任何有意义的方法来处理错误,请不要试图抓住它。
答案 3 :(得分:0)
在屏幕截图中,HierarchyData指的是您的ASP.NET页面(CT_WMT.Secure.HierarchyData
),它与App_Code(CT_WMT.App_Code.HierarchyData
)中的类名称相同。
不确定您是否希望App_Code中的那个成为部分类,因此不是ASP.NET页面的一部分。如果这样做,则需要将其设置为partial,并使其成为同一名称空间的一部分。无论如何,您需要排序类名/命名空间问题。