如何通过 ASP.Net 将 HTML 中的输入表单连接到数据库 Table

How can I connect input form in HTML to Database Table via ASP.Net

我在 ASP 项目的 HTML 代码中有一个按钮。 aspx.cs 中的方法 Button1_Click() 我实际上定义了我的连接并将值插入到 table.

这是我调用 Button1_Click():

的 aspx 片段
<form id="form">
    <input type="button"
           onclick="checking(); Button1_Click();"
           value="Check aviability"
           id="buttoncheck">
</form>

当我在网站上的表单中输入内容,然后单击按钮时,没有数据插入到我的 SQL 服务器 table。

Button1_Click()的代码:

protected void Button1_Click(object sender, EventArgs e)
{
    {
        string SQLInsert = "INSERT INTO[dbo].[User_search] (
            [Name],[Surname],[In_date],[Out_date]," +
            "[People_num],[In_business],[Email],[Phone_number])" +
            "Values(@Name, @Surname, @In_date, @Out_date, @People_num," +
            "@In_business, @Email, @Phone_number)";

        SqlConnection con = new SqlConnection(constr);
        SqlCommand cmd = new SqlCommand(SQLInsert, con);
        con.Open();
        cmd.ExecuteNonQuery();
    }
}

这些值未添加到数据库 table。知道如何解决这个问题吗?

  1. 在 ASP.NET WebForm Project 中,Button_Click() 是一个 code-behind 函数,因此在您的 HTML 代码 (.aspx) 中,按钮应以这种形式声明:
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
  1. 在您的 code-behind class (xxxx.aspx.cs) 中,单击 Button1 时将触发 protected void Button1_Click(object sender, EventArgs e) 方法。你的函数是执行插入 SQL,但它遗漏了一些参数....我不知道数据类型是什么,所以我假设参数是字符串:
protected void Button1_Click(object sender, EventArgs e)
{
    string SQLInsert = "INSERT INTO[dbo].[User_search] (
            [Name],[Surname],[In_date],[Out_date]," +
            "[People_num],[In_business],[Email],[Phone_number])" +
            "Values(@Name, @Surname, @In_date, @Out_date, @People_num," +
            "@In_business, @Email, @Phone_number)";
            
    using (SqlConnection con = new SqlConnection(constr))
    {
        SqlCommand cmd = new SqlCommand(SQLInsert, con);
        cmd.Parameters.Add("@Name", SqlDbType.NVarChar);
        cmd.Parameters["@Name"].Value = "test1";
        
        cmd.Parameters.Add("@Surname", SqlDbType.NVarChar);
        cmd.Parameters["@Surname"].Value = "test2";
        
        cmd.Parameters.Add("@In_date", SqlDbType.NVarChar);
        cmd.Parameters["@In_date"].Value = "test3";
        
        cmd.Parameters.Add("@Out_date", SqlDbType.NVarChar);
        cmd.Parameters["@Out_date"].Value = "test4";
        
        cmd.Parameters.Add("@People_num", SqlDbType.NVarChar);
        cmd.Parameters["@People_num"].Value = "test5";
        
        cmd.Parameters.Add("@In_business", SqlDbType.NVarChar);
        cmd.Parameters["@In_business"].Value = "test6";
        
        cmd.Parameters.Add("@Email", SqlDbType.NVarChar);
        cmd.Parameters["@Email"].Value = "test7";
        
        cmd.Parameters.Add("@Phone_number", SqlDbType.NVarChar);
        cmd.Parameters["@Phone_number"].Value = "test8";

        try
        {
            con.Open();
            int rowsAffected = cmd.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }
}