2016-12-16 68 views
0

我想將我的JavaScript變量轉換爲JSON對象並使用VB.Net代碼將JSON對象插入到MySQL數據庫中。如何將JavaScript變量轉換爲JSON對象並使用VB.Net將該JSON對象插入到Mysql

我的代碼是這樣的:

客戶端:

<script type = "text/javascript" > 
    $(function() { 
     $('#btnSubmit').click(function() { 
      var Name = $('#txtname').val(); 
      var Username = $('#txtUsername').val(); 
      var Password = $('#txtPassword').val(); 
      if (Name != '' && Username != '' && Password != '') { 
       $.ajax({ 
        type: "POST", 
        contentType: "application/json; charset=utf-8", 
        url: "Default.aspx/InsertData", 
        data: "{'Name':'" + Name + "','Username':'" + Username + "','Password':'" + Password + "'}", 
        dataType: "json", 
        success: function (data) { 
         var obj = data.d; 
         if (obj == 'true') { 
          $('#txtname').val(''); 
          $('#txtUsername').val(''); 
          $('#txtPassword').val(''); 
          $('#lblmsg').html("Details Submitted Successfully"); 
          window.location.reload(); 
         } 
        }, 
        error: function (result) { 
         alert("Error"); 
        } 
       }); 
      } 
      else { 
       alert('Please enter all the fields') 
       return false; 
      } 
     }) 
    }); 
</script> 

服務器端:

<WebMethod()> _ 
Public Shared Function InsertData(ByVal username As String, ByVal subj As String, ByVal desc As String) As String 
    Dim msg As String = String.Empty 
    Using con As New SqlConnection("server=192.168.1.53;charset=utf8;userid=root;password=password;allow user variables=true;database=information") 
     Using cmd As New SqlCommand("insert into userDetails(Name,Username,Password) VALUES(@Name,@Username,@Password)", con) 
      con.Open() 
      cmd.Parameters.AddWithValue("@Name", Name) 
      cmd.Parameters.AddWithValue("@Username", Username) 
      cmd.Parameters.AddWithValue("@Password", Password) 
      Dim i As Integer = cmd.ExecuteNonQuery() 
      con.Close() 
      If i = 1 Then 
       msg = "true" 
      Else 
       msg = "false" 
      End If 
     End Using 
    End Using 
    Return msg 
End Function 

但其顯示的錯誤。我的JSON變量沒有在服務器 - 聲明我是JSON的新手。請幫幫我。提前致謝。

回答

1

您的JavaScript代碼肯定是試圖發送JSON,但您的vb.net代碼並不尋找json。它正在尋找標準的發佈數據。這類數據不能真正保存爲JSON對象。所以你的vb.net代碼是正確的,讓我們只需要改變JavaScript發送一個標準的帖子,你的VB.NEt代碼將能夠做到沒有任何問題的插入。

$.ajax({ 
       type: "POST", 
       url: "Default.aspx/InsertData", 
       data: {'Name': Name,'Username': Username, 'Password': Password }, 
       success: function (data) { 
        var obj = data.d; 
        if (obj == 'true') { 
         $('#txtname').val(''); 
         $('#txtUsername').val(''); 
         $('#txtPassword').val(''); 
         $('#lblmsg').html("Details Submitted Successfully"); 
         window.location.reload(); 
        } 
       }, 
       error: function (result) { 
        alert("Error"); 
       } 
      }); 
+0

謝謝......但它在我的服務器端腳本中顯示錯誤,在sqlcommand中將我的變量添加爲'名稱'未聲明。 – MDP

+0

這當然是一個完全不同的問題。但那是因爲你沒有正確定義參數ByVal username As String,ByVal subj As String,ByVal desc As String – e4c5

+0

是的,我錯誤地定義了變量..但是我的JSON數據仍然只是通過錯誤信息。 – MDP