2016-08-01 14 views
0

Neu bei AJAX hier. Versuchen Sie, mit AJAX zu meiner Datenbank zu senden, aber es funktioniert nicht. In meinem aspx.cs:Senden an die Datenbank mit ASP.NET, C# und jQuery

[WebMethod] 
    public static void saveMsg(string roomCode, string userName, string msg) 
    { 
     using (SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["LBConnectionString"].ConnectionString)) 
     { 
      SqlCommand cmd = con.CreateCommand(); 

      cmd.CommandText = "INSERT into chatTable(roomCode, uName, msg) VALUES (" + roomCode + ", '" + userName + "', + '" + msg + "')"; 
      cmd.Connection = con; 
      con.Open(); 

      cmd.ExecuteNonQuery(); 

      con.Close(); 
     } 
    } 

Ich versuche, Daten unter Verwendung von AJAX und C# ASP.NET einzufügen. Dies ist meine aspx Datei

$.ajax({ 
        type:'POST', 
        contectType: "application/json; charset=utf-8", 
        dataType: "json", 
        url:"Room.aspx?Board='" + roomCode + "'", 
        data: "{'roomCode':'" + roomCode + "','uName':'" + userName + "','msg':'" + <%=message.ClientID %> + "'}", 
       }) 

Die vollständige URL ist http://localhost:1759/Room?Board= '// roomcode'.

Gibt es etwas, das schief gelaufen ist? Wie stelle ich die URL in die AJAX-Funktion? Vielen Dank im Voraus!

EDIT: Ist es erforderlich, den Datentyp als JSON zu setzen? zu neu zu JSON ...

+0

Sie sollten keine Zeichenfolge beim Übergeben von Parametern verketten. Zum Beispiel Daten: {roomCode: roomCode, uName: userName, msg: message.ClientID}. Ähnliche Fragen lesen http://stackoverflow.com/questions/1916309/pass-multiple-parameters-to-jquery-ajax-call –

+0

@kashi_rock aber meine Daten brauchen Benutzereingabe kann einfach wie tat setzen? Entschuldigung neu hier ... :) – Zoey

+0

Bitte werfen Sie einen Blick hier [http://stackoverflow.com/questions/7081054/calling-a-function-database-update-using-ajax-viaquery/40427446#40427446] (http://stackoverflow.com/questions/7081054/calling-a-function-database-update-using-ajax-viaquery/40427446#40427446) für eine ähnliche Frage, wenn es hilft .. –

Antwort

1

diesen Code Versuchen:

Javascript:

function Getpath() { 
if (!window.location.origin) { 
    window.location.origin = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port : ''); 
} 
var Domainpath = window.location.origin + "/"; 
if (Domainpath.indexOf("localhost") == -1) { 
    return Domainpath; 
} 
else { 
    return Domainpath; 
} 
} 

Ajax:

Sie den Pfad in Getpath() Method bekommen.

var path = Getpath(); 
$.ajax({ 
       type:'POST', 
       contectType: "application/json; charset=utf-8", 
       dataType: "json", 
       url: path +"Room.aspx?Board='" + roomCode + "'", 
       data: "{'roomCode':'" + roomCode + "','uName':'" + userName + "','msg':'" + <%=message.ClientID %> + "'}", 
      }) 
+0

Es funktioniert nicht .. aber Wie auch immer ich bin Signalgeber zusammen mit Ajax ist es in Ordnung? – Zoey

+0

@Zoey Debug ur Code dann werden Sie das genaue Problem und überprüfen Sie auch URL. – RajeeshMenoth

+0

Danke wird es versuchen .. und +1 für Ihre Ans aber ... danke !!! :)) – Zoey

-1

Sie müssen die richtige URL übergeben, um die Methode aufzurufen.

$.ajax({ 
     type:'POST', 
     contectType: "application/json; charset=utf-8", 
     dataType: "json", 
     url:"Room.aspx/saveMsg", 
     data: "{'roomCode':'" + roomCode + "','uName':'" + userName + "','msg':'" + <%=message.ClientID %> + "'}", 
    }) 
+0

Vielen Dank für Ihre Hilfe! :)) – Zoey

+0

Basierend auf @zoey Problem möchte er URL in AJAX-Funktion setzen. In Ihrer Lösung greifen Sie nur auf die Webmethode zu, ohne die URL zu übergeben. – RajeeshMenoth