C# 将脚本添加到ASP
我有一个使用ASP.Net的登录表单,我想将另一个变量数据放入数据库,但源代码已编译为dll文件,所以我编写了一个小脚本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
<%@ 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查询。点击工作按钮。