使用jquery将数据插入数据库

时间:2012-11-22 13:35:02

标签: asp.net jquery

我正在尝试将从asp .net表单中取出的四个字段插入数据库中的表中,但我无法执行此操作。 请给我完整编译的代码,该代码有效并且在将4个值输入db

中是成功的

以下是我使用的代码

 <script type="text/javascript">
    $(document).ready(function () {
        $("#<%= Button1.ClientID %>").click(function () {
           /* $(".style2").hide();
            return false; */
            var name = $('#<%=TextBox1.ClientID%>').val();
            var email = $('#<%=TextBox2.ClientID%>').val();
            var phone = $('#<%=TextBox3.ClientID%>').val();
            var message = $('#<%=TextBox4.ClientID%>').val();
            var json = "{'" + name + "','" + email + "','" + phone + "','" + message + "'}";
            alert("comes here");
            $ajax({
                  type:"POST",
                  url:"JqueryFunction.aspx/insert_details",

                  data:'{name: "' + $("#<%=TextBox1.ClientID%>")[0].value + '",email: "' + $("#<%=TextBox2.ClientID%>")[0].value + '",phone: "' + $("#<%=TextBox3.ClientID%>")[0].value + '",message: "' + $("#<%=TextBox4.ClientID%>")[0].value + '"}',

                  clientType:"application/json; charset=utf-8",
                  datatype:"json",
                  async: false,
                  success: function () { alert("success"); },
                  error: function(){alert("error");}
                  });
        });
    });
</script>

这里是insert_details函数:

public static void insert_details(string name,string emailid,string phone,string message)
{
    SqlConnection Con = new SqlConnection(@"Server=HP-PC;Integrated Security=True;" + "Database=DB1");
    //Console.WriteLine("connected to db");
    string query = "INSERT INTO [SubmissionFormTable]([Name],[Email],[Phone],[Message])" +
                "VALUES (@Name,@Email,@Phone,@Message)";

    SqlCommand cmd = new SqlCommand(query, Con);
    cmd.Parameters.AddWithValue("@Name", name);
    cmd.Parameters.AddWithValue("@Email", emailid);
    cmd.Parameters.AddWithValue("@Phone", phone);
    cmd.Parameters.AddWithValue("@Message", message);

    try
    {
        Con.Open();

        cmd.ExecuteNonQuery();
    }
    catch (Exception)
    {
        throw;
    }
    finally
    {
        Con.Close();
    }
    //string str_insert = "INSERT INTO remark VALUES(@remark)";

    //SqlParameter[] parameter = {
    //        new SqlParameter("@remark", remark),
    //    };
   // int abc = DBclass.TruyVan_XuLy_VoiThamSo(str_insert, parameter);
}

1 个答案:

答案 0 :(得分:1)

更新你的js代码,并尝试使用JSON.stringify将值转换为JSON以传递参数:

$(document).ready(function () {
        $("#<%= Button1.ClientID %>").click(function () {
            var name = $('#<%=TextBox1.ClientID%>').val();
            var email = $('#<%=TextBox2.ClientID%>').val();
            var phone = $('#<%=TextBox3.ClientID%>').val();
            var message = $('#<%=TextBox4.ClientID%>').val();
            var data = JSON.stringify({ name: name, email: email, phone: phone, message: message });
            alert("comes here");
            $ajax({
                  type:"POST",
                  url:"JqueryFunction.aspx/insert_details",
                  data:data,
                  contentType: "application/json; charset=utf-8",
                  datatype:"json",
                  success: function () { alert("success"); },
                  error: function(){alert("error");}
                  });
        });
    });

上面的代码没有问题。

已修改
你的方法应该是一个WebMethode:

[System.Web.Services.WebMethod]
public static void insert_details(string name,string emailid,string phone,string message)
{
    SqlConnection Con = new SqlConnection(@"Server=HP-PC;Integrated Security=True;" + "Database=DB1");
    //Console.WriteLine("connected to db");
    string query = "INSERT INTO [SubmissionFormTable]([Name],[Email],[Phone],[Message])" +
                "VALUES (@Name,@Email,@Phone,@Message)";

    SqlCommand cmd = new SqlCommand(query, Con);
    cmd.Parameters.AddWithValue("@Name", name);
    cmd.Parameters.AddWithValue("@Email", emailid);
    cmd.Parameters.AddWithValue("@Phone", phone);
    cmd.Parameters.AddWithValue("@Message", message);

    try
    {
        Con.Open();

        cmd.ExecuteNonQuery();
    }
    catch (Exception)
    {
        throw;
    }
    finally
    {
        Con.Close();
    }
    //string str_insert = "INSERT INTO remark VALUES(@remark)";

    //SqlParameter[] parameter = {
    //        new SqlParameter("@remark", remark),
    //    };
   // int abc = DBclass.TruyVan_XuLy_VoiThamSo(str_insert, parameter);
}
相关问题