C# 将脚本添加到ASP

C# 将脚本添加到ASP,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我有一个使用ASP.Net的登录表单,我想将另一个变量数据放入数据库,但源代码已编译为dll文件,所以我编写了一个小脚本 <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Login.ascx.cs" Inherits="Login.Web" %> <%@ import Namespace="System.Data.C

我有一个使用ASP.Net的登录表单,我想将另一个变量数据放入数据库,但源代码已编译为dll文件,所以我编写了一个小脚本

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Login.ascx.cs" Inherits="Login.Web" %>
<%@ import Namespace="System.Data.Common"%>
<%@ Import Namespace="System.Data.SqlClient"%>

<script runat="server">
    protected void btnLoginButton_Click(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection(@"Server=(local);Database=Test;Integrated Security=True;");
        con.Open();
        SqlCommand cmd = new SqlCommand("INSERT INTO Information(Info1,Info2) values(@Info1,@Info2)",con);
        cmd.Parameters.AddWithValue("@Info1", Info1.Text);
        cmd.Parameters.AddWithValue("@Info2", Info2.Text);
        int i = cmd.ExecuteNonQuery();
    }

</script>

受保护的无效btnLoginButton\单击(对象发送者,事件参数e)
{
SqlConnection con=newsqlconnection(@“Server=(local);Database=Test;integratedsecurity=True;”);
con.Open();
SqlCommand cmd=newsqlcommand(“插入信息(Info1,Info2)值(@Info1,@Info2)”,con);
cmd.Parameters.AddWithValue(“@Info1”,Info1.Text);
cmd.Parameters.AddWithValue(“@Info2”,Info2.Text);
int i=cmd.ExecuteNonQuery();
}
进入Login.aspx文件。当我运行时,“Info1”和“Info2”将成功发送到DB,但登录事件不起作用 我做错了什么。
注意:Login.ascx.cs已编译为Login.dll,我无法修改它。

我认为问题在于btnLoginButton\u Click定义在两个地方,第一个在“Login.Web”中,第二个在您的aspx中

因此,当您单击btnLoginButton时,它只调用aspx中的方法,。因此它永远不会到达编译程序集中的事件

因此,解决方案是将单击事件更改为调用不同的单击事件,您可以在其中调用基本单击事件

<asp:Button ID="btnLoginButton " runat="server" Text="Button" OnClick="btnLoginButton2_Click" />



 <script runat="server">
   protected void  btnLoginButton2_Click(object sender, EventArgs e)
   {
       SqlConnection con = new SqlConnection(@"Server=(local);Database=Test;Integrated Security=True;");
       con.Open();
       SqlCommand cmd = new SqlCommand("INSERT INTO Information(Info1,Info2) values(@Info1,@Info2)",con);       
       cmd.Parameters.Add("@Info1", SqlDbType.VarChar).Value = Info1.Text;
       cmd.Parameters.Add("@Info1", SqlDbType.VarChar).Value = Info2.Text;
       int i = cmd.ExecuteNonQuery();
       btnLoginButton_Click(sender, e);
   }

受保护的无效btnLoginButton2\u单击(对象发送者,事件参数e)
{
SqlConnection con=newsqlconnection(@“Server=(local);Database=Test;integratedsecurity=True;”);
con.Open();
SqlCommand cmd=newsqlcommand(“插入信息(Info1,Info2)值(@Info1,@Info2)”,con);
cmd.Parameters.Add(“@Info1”,SqlDbType.VarChar).Value=Info1.Text;
cmd.Parameters.Add(“@Info1”,SqlDbType.VarChar).Value=Info2.Text;
int i=cmd.ExecuteNonQuery();
btnLoginButton_单击(发送者,e);
}

旁注,一些必要的阅读:&“当我运行时,“Info1”和“Info2”将成功发送到DB,但登录事件不起作用。“发送成功”是什么意思?登录事件不起作用是什么意思。点击按钮不工作?但是你怎么会“发送成功”?我不认为这会导致“AddWithValue”,因为当我删除SQL参数时,它仍然没有登录。但当我删除“objectsender”和“EventArgs e”时,登录事件成功,但脚本插入不起作用@“拉努尤没有抓住那些文章的重点,”雷哈姆说。我从来没有说过这是个问题,但这是个问题。@Sergey和往常一样,当我登录时,我可以在SQL跟踪中看到SELECT查询并警告“登录成功”。但在添加脚本后,脚本中只显示了一个INSERT查询,在登录事件中我看不到SELECT查询。点击工作按钮。