【问题标题】:Add script to ASP compiled添加脚本到 ASP 编译
【发布时间】:2020-11-25 15:19:55
【问题描述】:

我有一个使用 ASP .Net 的登录表单,我想将另一个变量数据放入 DB,但源代码已编译为 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>

进入 Login.aspx 文件。当我运行时,“Info1”和“Info2”向 DB 发送成功但登录事件不起作用 我做错了什么。 注意:Login.ascx.cs 已编译为 Login.dll,无法修改。

【问题讨论】:

  • "当我运行时,"Info1" 和 "Info2" 向 DB 发送成功,但登录事件不起作用。" “发送成功”是什么意思,登录事件不起作用是什么意思。点击按钮不起作用?但是你如何“发送成功”?
  • 我认为它不会导致“AddWithValue”,因为当我删除 SQL 参数时,它仍然没有登录。但是当我删除“object sender”和“EventArgs e”时,登录事件成功但我的脚本插入不起作用。 @Larnu
  • 你错过了那些文章的重点,@ReHoPham。我从来没有说这是这里的问题,但它是一个问题。
  • @Sergey 通常,当我登录时,我可以在 SQL 跟踪中看到 SELECT 查询并警告“登录成功”。但是在我添加我的脚本之后,我的脚本中只显示了一个 INSERT 查询,并且我在 Login 事件中看不到 SELECT 查询。按钮点击工作。

标签: c# asp.net sql-server


【解决方案1】:

我认为问题在于 btnLoginButton_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);
   }

【讨论】:

    猜你喜欢
    • 2021-12-12
    • 2020-07-03
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    • 1970-01-01
    • 2011-06-30
    相关资源
    最近更新 更多