2012-07-06 52 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無效。