2012-07-06 127 views
0

我有一个带有c#(.net4)代码的表单。在这种形式下,用户填写他的规格并提交。
我想在jquery中使用ajax或post方法来预防blink.i写流程代码。 “成功”函数执行,但它不工作,任何记录插入数据库;我执行executemember方法separate.it工作没有问题,但它不工作与jQuery的ajax.where是问题吗?用jqueryajax在数据库中插入数据

[WebMethod] 
    public static string executeinsert(string name ,string family , string username,string password , string email,string tel, string codemeli) 
    { string constring = "data source=.;database=site;integrated security=true;"; 

     SqlConnection con = new SqlConnection(constring); 
     SqlCommand com = new SqlCommand("insertmember", con); 
     com.CommandType = CommandType.StoredProcedure; 
     com.Parameters.Add(new SqlParameter("@username", SqlDbType.NVarChar, 250)); 
     com.Parameters["@username"].Value = username; 
     com.Parameters.Add(new SqlParameter("@name", SqlDbType.NVarChar, 150)); 
     com.Parameters["@name"].Value = name; 
     com.Parameters.Add(new SqlParameter("@password", SqlDbType.NVarChar, 50)); 
     com.Parameters["@password"].Value = password; 
     com.Parameters.Add(new SqlParameter("@family", SqlDbType.NVarChar, 250)); 
     com.Parameters["@family"].Value = family; 
     com.Parameters.Add(new SqlParameter("@email", SqlDbType.NVarChar, 50)); 
     com.Parameters["@email"].Value = email; 
     com.Parameters.Add(new SqlParameter("@codemeli", SqlDbType.NChar, 10)); 
     com.Parameters["@codemeli"].Value = codemeli; 
     com.Parameters.Add(new SqlParameter("@tel", SqlDbType.NChar, 12)); 
     com.Parameters["@tel"].Value = tel; 
     con.Open(); 
     com.ExecuteNonQuery(); 
     con.Close(); 
     return "success"; 
     } 

和我的jQuery代码

<script type="text/javascript"> 
    $(document).ready(
    function() { 
     $("#Button1").click(
      function() { 
       var username, family, name, email, tel, codemeli, password; 
       username = $('#<%=TextBox1.ClientID%>').val(); 
       name = $('#<%=TextBox2.ClientID%>').val(); 
       family = $('#<%=TextBox3.ClientID%>').val(); 
       password = $('#<%=TextBox4.ClientID%>').val(); 
       email = $('#<%=TextBox5.ClientID%>').val(); 
       tel = $('#<%=TextBox6.ClientID%>').val(); 
       codemeli = $('#<%=TextBox7.ClientID%>').val(); 

       $.ajax(
       { 
        type: "POST", 
        url: "WebApplication20.aspx/executeinsert", 
        data: "{'username':'username','name':name, 
          'family':family,'password':password, 
          'email':email,'tel':tel, 
          'codemeli':codemeli}", 
        contentType: "application/json;charset=utf-8", 
        dataType: "json", 
        async: true, 
        cache: false, 
        success: function(msg) { 
         alert(msg); 
        }, 
        error: function (x, e) { 
         alert("The call to the server side failed. " 
           + x.responseText); 
        } 
       } 
      ); 
     } 
    ) 
}) 
</script> 

感谢

+0

你想用'data:“{'user ...'line实现什么?是传递一个json字符串还是一组键/值对? – Musa 2012-07-06 06:13:58

+0

我不确定它是问题,但你指出的数据类型为JSON把提供的字符串数据属性 – Samich 2012-07-06 06:21:17

+0

我现在看到它是在json的尝试,但它看起来不像WebMethod使用json – Musa 2012-07-06 06:32:44

回答

1

检查了这一点:

$(document).ready(function() { 
    $("#Button1").click(function() { 
     var userData = new Object(); 

     userData.username = $('#<%=TextBox1.ClientID%>').val(); 
     userData.name = $('#<%=TextBox2.ClientID%>').val(); 
     userData.family = $('#<%=TextBox3.ClientID%>').val(); 
     userData.password = $('#<%=TextBox4.ClientID%>').val(); 
     userData.email = $('#<%=TextBox5.ClientID%>').val(); 
     userData.tel = $('#<%=TextBox6.ClientID%>').val(); 
     userData.codemeli = $('#<%=TextBox7.ClientID%>').val(); 

     $.ajax({ 
      type: "POST", 
      url: "WebApplication20.aspx/executeinsert", 
      data: userData, 
      contentType: "application/json;charset=utf-8", 
      dataType: "json", 
      async: true, 
      cache: false, 
      success: function (msg) { 
       alert(msg); 
      }, 
      error: function (x, e) { 
       alert("The call to the server side failed. " + x.responseText); 
      } 
     }); 
    }); 
}); 

附:如果调用webmethod,尝试调试并放置断点。

+0

感谢您的回复。我这样做。我把断点,我发现webmethod剂量不打电话。什么问题 – quantum62 2012-07-06 06:46:19

+0

检查了这一点:http://stackoverflow.com/questions/6928533/calling-a-webmethod-with-jquery -in-ASP净web表单 – Samich 2012-07-06 06:51:02

0

json不正确的格式'name':name不括在',这是string

data: "{'username' : 'username', 'name':name,'family':family,'password':password,'email':email,'tel':tel,'codemeli':codemeli }", 

应该

data: "{'username' : 'username', 'name':'name', 'family':'family', 'password':'password', 'email':'email', 'tel':'tel', 'codemeli':'codemeli'}", 
+0

我不确定,但即使在第一个它应该添加记录到数据库与虚拟数据,如:用户名,名称等等。我的理解是根本没有数据被添加。我可以被错误。 – Samich 2012-07-06 06:18:15

+0

你是正确的任何记录添加到DB.i更改数据部分,但保持问题仍然存在,我忘了说al ert(msg)返回null – quantum62 2012-07-06 06:31:44

+0

关于警报消息为null,您需要返回一些内容。 – Rab 2012-07-06 06:38:42

1

我相信,你的JSON没有正确的格式

尝试验证您的JSON here

你可以看到你的json无效。