如何从JavaScript中的onclick事件插入数据库记录?

时间:2017-06-21 12:18:47

标签: javascript c# mysql asp.net

如果在超链接上触发JavaScript onclick事件,如何在C#和Web窗体中插入数据库记录(MySQL)?

我的代码下面我没有错误,但没有插入记录。

在HTML视图中,值为:

  

a onclick =“(<%=(rds.fields(”foo“)。Value)%>)”href =“....

是正确的:

<a onclick="DataPrinted(CEF)" href=".... >

提前感谢您的帮助。

Javascript和Web表单代码

<script type="text/javascript">

    function DataPrinted(IDNumber) {

        xmlhttp = new XMLHttpRequest();
        xmlhttp.open("POST", "UpdateDataPrintStatus.aspx", true);
        xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlhttp.send("ID=" + IDNumber);
    }

</script>

<a onclick="DataPrinted(<%=(rds.fields("foo").Value)%>)" 
   href="javascript:document.getElementById('loading').style.visibility = 'visible';
   location.href='<%=rds.fields("link")%>';" target="_top" >
<%=rds.fields("foo")%>
<span>Test</span></a>

UpdateDataPrintStatus.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
            string IDNumber = Request.Form["ID"].ToString();

            string query = String.Format(" INSERT INTO (IDNumber) ");
            query += String.Format(" VALUES ( ? ); ");

            using (OdbcConnection conn =
                new OdbcConnection(ConfigurationManager.ConnectionStrings["ConnMySQL"].ConnectionString))
            {
                using (OdbcCommand cmd =
                    new OdbcCommand(query, conn))
                {
                    try
                    {
                        cmd.Connection.Open();
                        cmd.Parameters.AddWithValue("param1", IDNumber.ToString().ToUpper());
                        cmd.ExecuteNonQuery();
                    }
                    catch (Exception ex)
                    {
                        throw new ApplicationException("operation failed!", ex);
                    }
                    finally
                    {
                        cmd.Connection.Close();
                    }
                }
            }
        }
    }
 }  

编辑#01

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<script type="text/javascript">
    $('name').click(function () {

        var book_id = $(this).parent().data('id');

        $.ajax
        ({
            url: 'UpdateDataPrintStatus.aspx',
            data: { "ID": book_id },
            type: 'post',
            success: function (result) {
                $('.modal-box').text(result).fadeIn(700, function () {
                    setTimeout(function () {
                        $('.modal-box').fadeOut();
                    }, 2000);
                });
            }
        });
    });                 
</script>



<a id="name" data-id="<%=rds.fields.Item("foo").Value%>" 
   href="javascript:document.getElementById('loading').style.visibility = 'visible';
      location.href='<%=rds.fields("link")%>';" target="_top">
         <%=rds.fields("link")%>
            <span>test</span>
</a> 

UpdateDataPrintStatus.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        string IDNumber = Request.Form["ID"].ToString();

            string query = String.Format(" INSERT INTO tbl ");
            query += String.Format(" (name) VALUES (?); ");

            using (OdbcConnection conn =
                new OdbcConnection(ConfigurationManager.ConnectionStrings["ConnMySQL"].ConnectionString))
            {
                using (OdbcCommand cmd =
                    new OdbcCommand(query, conn))
                {
                    try
                    {
                        cmd.Connection.Open();
                        cmd.Parameters.AddWithValue("param1", IDNumber.ToString().ToUpper());
                        cmd.ExecuteNonQuery();
                    }
                    catch (Exception ex)
                    {
                        throw new ApplicationException("operation failed!", ex);
                    }
                    finally
                    {
                        cmd.Connection.Close();
                    }
                }
            }

    }
}

0 个答案:

没有答案