【问题标题】:How do I make this button interact with my SQL database?如何使此按钮与 mySQL 数据库交互?
【发布时间】:2020-06-25 03:30:31
【问题描述】:

我目前正在用 html 和 c# (asp.net) 编写一个网站。我有一个按钮,当用户按下它时,它可以在我的 SQL 数据库中的值中添加一个(如计数器),但是当我尝试这个时没有任何反应?任何帮助将不胜感激。

protected void Button1_Click(object sender, EventArgs e)
{
    sjaddone();
}

void sjaddone()
{
    SqlConnection con = new SqlConnection(strcon);

    if (con.State == System.Data.ConnectionState.Closed)
    {
        // if it is closed the program will open it
        con.Open();
    }

    SqlCommand oot = new SqlCommand("Update [websiteDB].[dbo].[location_master_tbl] Set active_users=active_users+1 Where active_users<@active_users");

    Button1.Visible = false;

    oot.ExecuteNonQuery();

    // oot.Close();
}

【问题讨论】:

  • 太棒了!您介意更新您使用的控件吗?点击是永远不会起作用还是有时会起作用?

标签: c# html asp.net sql-server web


【解决方案1】:

您可以研究几件事。

  1. 您是否从不同的页面复制了按钮控件?如果是这样,那么您需要为您需要的页面删除并创建新按钮。

  2. 如果第 1 点不正确,则在控件中添加 CausesValidation="False",如

    <asp:Button ID="your_btn" runat="server" Text="Press" OnClick="your_btn_Click" CausesValidation="False"/> 
    
  3. 在你使用过控件的地方也要检查AutoPostBack的值。

MSDN 参考可能会对您有所帮助。

更新

您应该控制OnClick。我在你的代码中没有看到。

<asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" />

准确地说,您的代码应该类似于:

<asp:Button ID="yourBtn" runat="server" Text="Save" OnClick="Button1_Click" />

【讨论】:

  • 太棒了!您介意更新您使用的控件吗?点击是永远不会起作用还是有时会起作用?
  • 感谢您的回复,我没有从其他页面复制按钮控件,我尝试添加 CausesValidation="False" 但不幸的是并没有什么不同,我要去现在试试你的第三个选项,但我不太明白哈哈
  • 点击只是刷新页面,每次什么都不做? :(
  • 没问题让我们弄清楚这一点,显示您在aspx级别中的使用方式。
  • 看起来您的代码中没有使用OnClick 属性,我刚刚更新了我的代码,请验证并告诉我。