2016-12-16 42 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