我想为我的所有按钮点击方法创建一个泛型类。我的按钮单击方法在相同的aspx.cs文件中正常工作,但是当我想从泛型类调用此方法时。但参数没有通过。有人可以帮帮我吗。这是我的代码。
这是基类
namespace WebApplication1
{
public partial class Singnup : System.Web.UI.Page
{
protected void SUpButton_Click(object sender, EventArgs e)
{
Webapplication2.program.Insert_RData(sender, e);
}
}
}
这是第二课,我想调用按钮方法
namespace Webapplication2
{
public class program : WebApplication1.Singnup
{
public static void Insert_RData(object sender, EventArgs e)
{
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;
}
答案 0 :(得分:0)
尝试以下代码
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;
}
}
}
}
答案 1 :(得分:0)
您正在将实例化的类Singup
中的信息传递给静态类program
。标签等将从静态类中不可用,因为它与实际标签没有任何关联。
如果要分离按钮单击操作,并且您希望它们访问表单元素(例如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;
}
}
}