Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 要使用jQuery AJAX向数据库添加文本字段值吗_C#_Javascript_Jquery_Sql Server_Ajax - Fatal编程技术网

C# 要使用jQuery AJAX向数据库添加文本字段值吗

C# 要使用jQuery AJAX向数据库添加文本字段值吗,c#,javascript,jquery,sql-server,ajax,C#,Javascript,Jquery,Sql Server,Ajax,我想使用javascript jQuery AJAX调用C#server方法将文本字段值插入数据库。问题是AJAX调用运行成功,但C#没有更新数据库。原因可能是什么?请尽快回复。 ASP代码如下所示: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="dbTest.aspx.cs" Inherits="dbTest" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1

我想使用javascript jQuery AJAX调用C#server方法将文本字段值插入数据库。问题是AJAX调用运行成功,但C#没有更新数据库。原因可能是什么?请尽快回复。 ASP代码如下所示:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="dbTest.aspx.cs" Inherits="dbTest" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">
    <title></title>
     <script src="jquery.js" type="text/javascript"></script>
     <script src="json2.js" type="text/javascript"></script>

     <script type="text/javascript">

         function SaveOnClick() {
             $.ajax({
                 type: "POST",
                 url: "dbTest.aspx/SaveData",
                 data: "{'CustomerName': '" + $('#txtCustomerName').val() + "', 'CustomerPhoneNumber': '" + $('#txtCustomerPhoneNumber').val() + "', 'ColorID': '" + $('#txtColorID').val() + "'}",
                 contentType: "application/json; charset=utf-8",
                 dataType: "json",
                 success: function(result, txtstatus) {
                     alert(txtstatus);
                 },
                 error: function(result) {
                     alert("jQuery Error:" + result.statusText);
                 }
             });
         }

    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:DropDownList ID="Customers" runat="server">
      </asp:DropDownList>
    </div>
    <div id="CustomerDetails">
    </div>
    <table border="0">
<tr>
 <td align="right"><strong>Customer Name:</strong></td>
 <td align="left">
  <asp:TextBox id="txtCustomerName" maxlength="50" runat="server" />
</td>
</tr>
<tr>
 <td align="right"><strong>Customer Phone Number:</strong></td>
 <td align="left">
  <asp:TextBox id="txtCustomerPhoneNumber" runat="server" />
</td>
</tr>
<tr>
 <td align="right"><strong>Color ID:</strong></td>
 <td align="left">
  <asp:TextBox id="txtColorId" runat="server" />
</td>
</tr>
<tr>
 <td>&nbsp;</td>
</tr>
</table>

<input type="button" onclick="SaveOnClick()" value="click me"/>

<asp:Panel id="pnlConfirm" runat="server">
 <h2>Thanks for submitting your information to us!</h2>

</asp:Panel>

    </form>
</body>
</html>

您没有得到发布的值。这就是问题所在

[WebMethod]
    public static void SaveData(string CustomerName, string CustomerPhoneNumber, string ColorID)
    {
        string Server = "al2c06";
        string Username = "app_AmbreenTesting";
        string Password = "testing";
        string Database = "AmbreenTesting";

        string ConnectionString = "Data Source=" + Server + ";";
        ConnectionString += "User ID=" + Username + ";";
        ConnectionString += "Password=" + Password + ";";
        ConnectionString += "Initial Catalog=" + Database;
        string query = "INSERT INTO Customer_Order(customerName, customerPhoneNumber, colorID)";
        query += "VALUES (";
        query += "'" + Request.Form["CustomerName"].ToString()+ "'";
        query += ",";
        query += "'" + Request.Form["CustomerPhoneNumber"].ToString() + "'";
        query += ",";
        query += "'" + Request.Form["ColorID"].ToString()+ "'";
        query += ")";

        using (SqlConnection conn = new SqlConnection(ConnectionString))
        {
            using (SqlCommand cmd = new SqlCommand(query, conn))
            {
                conn.Open();
                cmd.ExecuteNonQuery();
            }
        }
        //lblSQL.Text = query;
        //pnlConfirm.Visible = true;
    }

HTH

我想你需要的是:

using (SqlConnection conn = new SqlConnection(ConnectionString))
        {
            using (SqlCommand cmd = new SqlCommand(query, conn))
            {
                conn.Open();
                cmd.ExecuteNonQuery();
            }
        }

首先修复jQuery选择器,它们区分大小写。将
$('#txtColorID').val()
更改为
$('#txtColorID').val()

您需要更具体一些。什么不起作用?您的SaveData方法运行了吗?它是否已正确连接以针对您所指向的URL运行?看起来您可能混合了ASP.NET页面和web服务。如果正在运行,请附加调试器并标识代码行、失败的位置以及是否引发异常。在这里发布详细信息,我们将很乐意提供帮助。谢谢回复。我的savedata开始运行。因为ajax调用的成功处理程序中的警报框正在显示。但是当我在Management studio中检查数据时,它不会更新。表中没有这些值。这就是问题所在。问题可能出在我的查询上。发布的值是他的方法的参数,但正如我所评论的,我不确定它是如何连接起来运行的,如果是的话。无论如何,这段代码将失败,因为您处于静态上下文中,因此无法访问“Request”。哦,是的,您是对的……我通常有一个web方法,并从Request.Form获取信息。顺便问一下,错误是什么?我尝试了ur方法,并使我的web方法非静态地使用Request.Form,但随后出现了jquery错误
using (SqlConnection conn = new SqlConnection(ConnectionString))
        {
            using (SqlCommand cmd = new SqlCommand(query, conn))
            {
                conn.Open();
                cmd.ExecuteNonQuery();
            }
        }