C# 如何从C中的另一个类调用函数#

C# 如何从C中的另一个类调用函数#,c#,asp.net,inheritance,C#,Asp.net,Inheritance,我想为我的所有按钮单击方法创建一个泛型类。我的按钮单击方法在同一个aspx.cs文件中正常工作,但当我想从泛型类调用此方法时。但参数并没有传递。谁能帮帮我吗。这是我的密码 这是基类 这是第二节课,从那里我想调用按钮方法 试试下面的代码 namespace WebApplication1 { public partial class Singnup : System.Web.UI.Page { protected void SUpButton_Click(objec

我想为我的所有按钮单击方法创建一个泛型类。我的按钮单击方法在同一个aspx.cs文件中正常工作,但当我想从泛型类调用此方法时。但参数并没有传递。谁能帮帮我吗。这是我的密码

这是基类

这是第二节课,从那里我想调用按钮方法

试试下面的代码

namespace WebApplication1
{
    public partial class Singnup : System.Web.UI.Page
    {
        protected void SUpButton_Click(object sender, EventArgs e)
        {
            string EmailId = "yourmailid@domain.com";
            Webapplication2.program.InsertRData(EmailId);
        }
    }
}

namespace Webapplication2
{
    public class program : WebApplication1.Singnup
    {
        public static void Insert_RData(object sender, EventArgs e)
        {
            string EmailId = "yourmailid@domain.com";
            InsertRData(EmailId);
        }

        public static void InsertRData(string EmailId)
        {
            SqlConnection con_Signup = new SqlConnection(ConfigurationManager.ConnectionStrings["myconnectionstring"].ConnectionString);
            con_Signup.Open();
            SqlCommand cmd_check = new SqlCommand("Check_Existing_Email", con_Signup);
            cmd_check.CommandType = CommandType.StoredProcedure;
            cmd_check.Parameters.AddWithValue("@mail", EmailId);
            object i = cmd_check.ExecuteScalar();

            if (i != null)
            {
                lbforerror.Text = "This Email is already Registered";
                lbforerror.Visible = true;
            }
        }
    }
}
试试下面的代码

namespace WebApplication1
{
    public partial class Singnup : System.Web.UI.Page
    {
        protected void SUpButton_Click(object sender, EventArgs e)
        {
            string EmailId = "yourmailid@domain.com";
            Webapplication2.program.InsertRData(EmailId);
        }
    }
}

namespace Webapplication2
{
    public class program : WebApplication1.Singnup
    {
        public static void Insert_RData(object sender, EventArgs e)
        {
            string EmailId = "yourmailid@domain.com";
            InsertRData(EmailId);
        }

        public static void InsertRData(string EmailId)
        {
            SqlConnection con_Signup = new SqlConnection(ConfigurationManager.ConnectionStrings["myconnectionstring"].ConnectionString);
            con_Signup.Open();
            SqlCommand cmd_check = new SqlCommand("Check_Existing_Email", con_Signup);
            cmd_check.CommandType = CommandType.StoredProcedure;
            cmd_check.Parameters.AddWithValue("@mail", EmailId);
            object i = cmd_check.ExecuteScalar();

            if (i != null)
            {
                lbforerror.Text = "This Email is already Registered";
                lbforerror.Visible = true;
            }
        }
    }
}

您正在将信息从实例化类
向静态类
程序
传递。标签等将无法从静态类中获得,因为它与实际标签没有连接

如果您希望分离按钮单击操作,并且希望它们访问表单元素(例如
lbforerror
),那么我建议您使用分部类或仅使用同一类中的区域来清理逻辑

#region Button Logic
//Your logic here
#endregion //button logic
最好的方法是将可重用逻辑分离到一个完全不同的类中(在本例中,处理插入),该类返回结果,并在原始类中决定:

public class ConnectionManager
{
    public object InsertRData(string EmailId)
    {
        SqlConnection con_Signup = new SqlConnection(ConfigurationManager.ConnectionStrings["myconnectionstring"].ConnectionString);
        con_Signup.Open();
        SqlCommand cmd_check = new SqlCommand("Check_Existing_Email", con_Signup);
        cmd_check.CommandType = CommandType.StoredProcedure;
        cmd_check.Parameters.AddWithValue("@mail", EmailId);
        object i = cmd_check.ExecuteScalar();
        return i;
    }
}
然后你的原始类可以简单地说

public partial class Singnup : System.Web.UI.Page
{
    protected void SUpButton_Click(object sender, EventArgs e)
    {
        ConnectionManager mgr = new ConnectionManager();
        object i = mgr.Insert_RData("email logic here");
        if (i != null)
        {
            lbforerror.Text = "This Email is already Registered";
            lbforerror.Visible = true;
        }
    }
}

您正在将信息从实例化类
Singup
传递到静态类
程序
。静态类将无法使用标签等,因为它与实际标签没有连接

如果您希望分离按钮单击操作,并且希望它们访问表单元素(例如
lbforerror
),那么我建议您使用分部类或仅使用同一类中的区域来清理逻辑

#region Button Logic
//Your logic here
#endregion //button logic
最好的方法是将可重用逻辑分离到一个完全不同的类中(在本例中,处理插入),该类返回结果,并在原始类中决定:

public class ConnectionManager
{
    public object InsertRData(string EmailId)
    {
        SqlConnection con_Signup = new SqlConnection(ConfigurationManager.ConnectionStrings["myconnectionstring"].ConnectionString);
        con_Signup.Open();
        SqlCommand cmd_check = new SqlCommand("Check_Existing_Email", con_Signup);
        cmd_check.CommandType = CommandType.StoredProcedure;
        cmd_check.Parameters.AddWithValue("@mail", EmailId);
        object i = cmd_check.ExecuteScalar();
        return i;
    }
}
然后你的原始类可以简单地说

public partial class Singnup : System.Web.UI.Page
{
    protected void SUpButton_Click(object sender, EventArgs e)
    {
        ConnectionManager mgr = new ConnectionManager();
        object i = mgr.Insert_RData("email logic here");
        if (i != null)
        {
            lbforerror.Text = "This Email is already Registered";
            lbforerror.Visible = true;
        }
    }
}

您得到的实际错误是什么?您得到的实际错误是什么?