none
c# online highscore ? RRS feed

  • Frage

  • Hi Leute ...

    Ich brauche Ideen :D

    Ich habe ein kleines Spiel in XNA geschrieben und will jetzt machen das man da einen online highscore hat ... also jeder der einen Rkord macht wird in eine Liste eingetragen und die kann dann jeder sehen ... wie könnte ich das machen ? Mit einer textdatei auf der Webspace oder so vielleicht ?

    Samstag, 26. März 2011 06:16

Antworten

  • Hallo Bastian,

    [XNA Essentials]
    http://xnaessentials.com/tutorials/highscores.aspx/tutorials/highscores.aspx

    [The XNA Offline and Online Highscores Component Version 2 (distributed leaderboards, sort-of) | www.enchantedage.com]
    http://www.enchantedage.com/highscores

    [How do I handle high scores? - XNAWiki]
    http://www.xnawiki.com/index.php?title=How_do_I_handle_high_scores%3F

    und weitere ....
    __________________

    XNA Fragen sind ansonsten ggf. besser hier aufgehoben:

    [Forums - App Hub Forums]
    http://forums.create.msdn.com/forums/
    also zum Beispiel: http://forums.create.msdn.com/search/SearchResults.aspx?q=highscore

     

    • wie schreibt man eigentlich in eine textdatei auf einer webspace  

    das ist eine andere Frage, die einzeln gestellt werden müsste.
    Oft über FTP-Upload (Beispiel), oder FTP-Tools, wie FileZilla/Webmatrix/VisualStudio. Oder FileUpload-Control, HttpPost, WCF-Streaming, etc. ....

     


    ciao Frank
    Samstag, 26. März 2011 08:56
  • Hi,

    hier dann die C# Variante:

    <%@ WebHandler Language="C#" Class="SaveHighscore" %>
    
    using System;
    using System.Web;
    using System.IO;
    
    public class SaveHighscore : IHttpHandler
    {
    
    
    	public void ProcessRequest(HttpContext context)
    	{
    		Int64 PlayerId = 0;
    		Int64 Score = 0;
    
    		Int64.TryParse(context.Request.QueryString("Player"), PlayerId);
    		Int64.TryParse(context.Request.QueryString("Score"), Score);
    
    		Response.ContentType = "text/plain";
    
    		if (PlayerId > 0 && Score > 0) {
    			try {
    				SaveHighscore(PlayerId, Score);
    				Response.Write("Ok");
    			} catch (Exception ex) {
    				Response.Write("Fehler: " + ex.Message);
    			}
    		} else {
    			Response.Write("Fehler: Daten fehlen");
    		}
    
    	}
    
    	protected void SaveHighscore(Int64 PlayerId, Int64 Score)
    	{
    
    		string ConnectionString = "SERVER=127.0.0.1;UID=Username;PWD=Passwort;DATABASE=Datenbankname";
    
    		SqlConnection Connection = new SqlConnection(ConnectionString);
    		Connection.Open();
    
    		string SqlStatement = "INSERT INTO Highscore( PlayerId, Score ) VALUES( @PlayerId, @Score )";
    		SqlCommand SqlCommand = new SqlCommand(SqlStatement, Connection);
    
    		SqlCommand.Parameters.AddWithValue("@PlayerId", PlayerId);
    		SqlCommand.Parameters.AddWithValue("@Score", Score);
    		SqlCommand.ExecuteNonQuery();
    
    		SqlCommand.Dispose();
    
    		Connection.Close();
    		Connection.Dispose();
    
    	}
    
    	public bool IsReusable {
    		get { return false; }
    	}
    
    }
    
    

    Der Code ist jetzt rein so dahingeschrieben (die VB Variante, die C# Variante kommt vom Telerik Codekonverter) und könnte daher noch Fehler enthalten. Den Weg sollte der Code aber zeigen.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Sonntag, 27. März 2011 13:48
    Moderator
  • Hallo Bastian,

    quote am besten, dann weiß man, auf welchen Teil der Antwort Du geantwortet hast.
    Die Tools zum Updload sind zum Teil schon extrem einfach. Webmatrix schliesslich erkennt sogar selber, Änderungen und kann auf Knopfdruck synchronisieren. Nur muss man am Anfang natürlich (zum Beispiel) FTP-Passwort und URL kennen und einrichten (oder andere Arten der Authentifizierung). Technologien wie WebDav (viele können das allerdings nicht) sind sogar in der Lage, dem Betriebssystem einen Shell-Ordner vorzuspiegeln, in dem dann ein normales Dateisystem vorspiegeln oder mit Methoden wie diesen oder diesen arbeiten können.


    ciao Frank
    Samstag, 26. März 2011 09:57
  • Hi,

    klar kannst du es über Get oder Post über eine Website (die Website läuft ja auch auf einem Server!) machen. Dann musst du mit PHP nur die Variablen auslesen und in die MySQL-Datenbank schreiben oder halt auslesen.

    Guck dir mal die folgende Beiträge an:

    http://www.tokk.de/2010/08/04/url-mit-csharp/

    http://www.mycsharp.de/wbb2/thread.php?threadid=72666

    http://msdn.microsoft.com/de-de/library/debx8sh9(v=vs.80).aspx

    Gruß

    Rudolf

    Samstag, 26. März 2011 16:03
  • Hi,

    Oke danke für den Typ also werde ich es jetzt mal mit Mysql und php versuchen indem ich die variable deklariere und dann in eine Tabelle schreibe ...

    ich denke, Du hast keinen Server? Hast Du jedenfalls geschrieben.

    Wenn Du doch einen hast, kannst Du P*P, ASP, ASP.NET, ... nehmen. Die Abarbeitung selbst ist da überall gleich. Wenn Du aber mit P*P doch schon Erfahrungen gesammelt haben willst, müsstest Du eigentlich wissen, ob und wie man Variablen deklariert, Übergabeparameter entgegennimmt (auch wenn register_globals deaktiviert ist, was sehr empfehlenswert ist), ...

    Für ASP.NET könnte man im einfachsten Fall sowas machen:

    <%@ WebHandler Language="VB" Class="SaveHighscore" %>
    
    Imports System
    Imports System.Web
    Imports System.IO
    
    Public Class SaveHighscore : Implements IHttpHandler
      
      Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
    
      Dim PlayerId As Int64
      Dim Score  As Int64
      
        Int64.TryParse( context.Request.QueryString( "Player" ), PlayerId )
        Int64.TryParse( context.Request.QueryString( "Score" ), Score )
    
        Response.ContentType = "text/plain"
    
        If PlayerId > 0 AndAlso Score > 0 Then
          Try
            SaveHighscore( PlayerId, Score )
            Response.Write( "Ok" )
          Catch ex As Exception
            Response.Write( "Fehler: " & ex.Message )
          End Try
        Else
          Response.Write( "Fehler: Daten fehlen" )
        End If
    
      End Sub
    
      Protected Sub SaveHighscore( ByVal PlayerId As Int64, ByVal Score As Int64 )
      
      Dim ConnectionString As String = "SERVER=127.0.0.1;UID=Username;PWD=Passwort;DATABASE=Datenbankname"
      
      Dim Connection As New SqlConnection( ConnectionString )
        Connection.Open()
    
      Dim SqlStatement As String = "INSERT INTO Highscore( PlayerId, Score ) VALUES( @PlayerId, @Score )"  
      Dim SqlCommand  As New SqlCommand( SqlStatement, Connection )
    
        SqlCommand.Parameters.AddWithValue( "@PlayerId", PlayerId )  
        SqlCommand.Parameters.AddWithValue( "@Score",  Score )
        SqlCommand.ExecuteNonQuery()
    
        SqlCommand.Dispose()
    
        Connection.Close()
        Connection.Dispose()
    
      End Sub
     
      Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
        Get
          Return False
        End Get
      End Property
    
    End Class
    
    
    Aufrufen kannst Du das bspw. so:

    Dim Url  As String = "http://domain/SaveGighscore.ashx?Player={0}&Score={1}"
    Dim Result As String = New WebClient().DownloadString( String.Format( Url, PlayerId, Score ) )
    
    Nachtrag: Hab mal wieder vergessen, dass wir im C# Forum sind, C# Variante folgt gleich^^

    Tut mir Leid wenn ich mich verlesen hab .

    Es macht nichts, wenn Du dich verlesen hättest. Das, was Du schreibst, erweckt zumindest bei mir den Eindruck, dass Du dich nicht mit der Materie beschäftigen willst. Wenn das nicht so sein sollte, sorry, es macht aber auf mich diesen Eindruck.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Sonntag, 27. März 2011 13:44
    Moderator
  • Hi,

    und da ichs vergessen hab, noch die Variante für das Speichern der Werte in eine Datei anstelle einer Datenbank:

    Dazu muss nur der Code der Methode SaveGighscore ausgetauscht werden. Im einfachsten Fall so:

      System.IO.File.WriteAllText( String.Format( "X:\Ordner\{0}.txt", PlayerId.ToString(), Score.ToString() )

    Also einfach das , was in Sub SaveHighscore( ... ) bzw. protected void SaveHighscore( ... ) steht, durch die obige Zeile austauschen.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Sonntag, 27. März 2011 13:54
    Moderator

Alle Antworten

  • wie schreibt man eigentlich in eine textdatei auf einer webspace ?
    Samstag, 26. März 2011 07:01
  • Hallo Bastian,

    [XNA Essentials]
    http://xnaessentials.com/tutorials/highscores.aspx/tutorials/highscores.aspx

    [The XNA Offline and Online Highscores Component Version 2 (distributed leaderboards, sort-of) | www.enchantedage.com]
    http://www.enchantedage.com/highscores

    [How do I handle high scores? - XNAWiki]
    http://www.xnawiki.com/index.php?title=How_do_I_handle_high_scores%3F

    und weitere ....
    __________________

    XNA Fragen sind ansonsten ggf. besser hier aufgehoben:

    [Forums - App Hub Forums]
    http://forums.create.msdn.com/forums/
    also zum Beispiel: http://forums.create.msdn.com/search/SearchResults.aspx?q=highscore

     

    • wie schreibt man eigentlich in eine textdatei auf einer webspace  

    das ist eine andere Frage, die einzeln gestellt werden müsste.
    Oft über FTP-Upload (Beispiel), oder FTP-Tools, wie FileZilla/Webmatrix/VisualStudio. Oder FileUpload-Control, HttpPost, WCF-Streaming, etc. ....

     


    ciao Frank
    Samstag, 26. März 2011 08:56
  • geht das nicht irgendwie leichter ? wenn ich die dateiberechtigung auf 777 setzte oder so ? 
    Samstag, 26. März 2011 09:15
  • Hallo Bastian,

    quote am besten, dann weiß man, auf welchen Teil der Antwort Du geantwortet hast.
    Die Tools zum Updload sind zum Teil schon extrem einfach. Webmatrix schliesslich erkennt sogar selber, Änderungen und kann auf Knopfdruck synchronisieren. Nur muss man am Anfang natürlich (zum Beispiel) FTP-Passwort und URL kennen und einrichten (oder andere Arten der Authentifizierung). Technologien wie WebDav (viele können das allerdings nicht) sind sogar in der Lage, dem Betriebssystem einen Shell-Ordner vorzuspiegeln, in dem dann ein normales Dateisystem vorspiegeln oder mit Methoden wie diesen oder diesen arbeiten können.


    ciao Frank
    Samstag, 26. März 2011 09:57
  • is das jetzt werbung ?
    Samstag, 26. März 2011 10:01
  • is das jetzt werbung ?

    Nö. Das ist eine Erklärung der Möglichkeiten.

    Ich weiß ja nicht, was Du dir da vorstellst. Aber Game.SaveHighscore( "http://domain/abc.txt", 48749864789798 ) gibt es halt leider nicht. Du kannst dir aber natürlich eine Methode schreiben, die so heißt und dann die notwendigen Schritte vornimmt, damit die Speicherung auch funktioniert.

    So, wie Du es ggfs. gerne hättest, geht's jedenfalls nicht.

    Dateiberechtigung 777 gibt es unter Windows schon mal gar nicht. Wenn Du einen Lunixserver hast, kannst Du das machen aber auch dann musst Du schon bspw. einen FTP Client bemühen.

    Evtl. solltest Du von dem Gedanken wegkommen, dass man ohne jegliche Programmierung ein halbwegs ordentliches Programm "schreiben" kann.

     

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Samstag, 26. März 2011 10:15
    Moderator
  • also müsste ich eins dieser aufwendigen sachen da machen die auf english stehen und deshalb für mich nie in frage kommen würden ?

    PS: aber 777 gibs bei Windows ! also in FileZilla kann ichs einstellen ...

    Samstag, 26. März 2011 11:20
  • Hi,

    also müsste ich eins dieser aufwendigen sachen da machen die auf english stehen und deshalb für mich nie in frage kommen würden ?

    Öhm. Ja!?

    PS: aber 777 gibs bei Windows ! also in FileZilla kann ichs einstellen ...

    Dim MyInt As Int64 = 777

    Stimmt. Gibts :)

    Im Ernst: Das, was Du meinst, gibt es unter Windows nicht. Es mag FTP Server geben, die das irgendwie dann in Windowsberechtigungen umsetzen, ich kenne keinen. Und dass FileZilla das anbietet, heißt nicht, dass der Server das auch unterstützt.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Samstag, 26. März 2011 11:56
    Moderator
  • aha ... oke dann bekomt mein spiel leider kein online highscore :( naja ....
    Samstag, 26. März 2011 12:20
  • aha ... oke dann bekomt mein spiel leider kein online highscore :( naja ....

    Ich frage mich ganz ernsthaft, wie Du auch nur ansatzweise ein Spiel entwickeln willst, wenn Du nicht mal 20 Minuten investierst, um einen HttpWebRequest abzusetzen und das Gegenstück auf Serverseite zu schreiben, dass den GET Parameter nimmt und ihn in eine Datei schreibt.

    Aber gut, deine Sache.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Samstag, 26. März 2011 12:25
    Moderator
  • ich hab garkein server ....
    Samstag, 26. März 2011 15:19
  • kann man das nicht irgendwie über get oder post mit einer website machen die das dann über mysql in eine datenbank schreibt oder in ne textdatei ? weil mit php und mysql kenn ich mich besser aus das hab ich auch schon programmiert ...
    Samstag, 26. März 2011 15:42
  • Hi,

    klar kannst du es über Get oder Post über eine Website (die Website läuft ja auch auf einem Server!) machen. Dann musst du mit PHP nur die Variablen auslesen und in die MySQL-Datenbank schreiben oder halt auslesen.

    Guck dir mal die folgende Beiträge an:

    http://www.tokk.de/2010/08/04/url-mit-csharp/

    http://www.mycsharp.de/wbb2/thread.php?threadid=72666

    http://msdn.microsoft.com/de-de/library/debx8sh9(v=vs.80).aspx

    Gruß

    Rudolf

    Samstag, 26. März 2011 16:03
  • THX :D 

    Bei dem ersten Link von dir da muss man aber doch noch was einbinden oder ? weil sonst funktioniert das nicht .... aber was soll ich da einbinden ? also ich meine dieses using...

    Samstag, 26. März 2011 16:15
  • Hey,

    wenn du Visual Studio 2010 hast, kannst auf den Klassennamen der noch rot-Unterstrichen ist mit der rechter Maustaste klicken und hier "Auflösen" und da auf den Eintag mit dem + klicken, dann wird bei dir das Using eingefügt.

    Ansonsten einfach mal die Klassennamen in das Suchfeld der Seite http://msdn.microsoft.com/de-de/library eingeben. Bei der jeweiligen Klasse steht meistens ganz oben in welchem Namespace sich die Klasse befindet. Dieses Namespace musst du per using einbinden.

    Sollte angemeckert werden, dass das Namespace nicht bekannt ist muss die auf der Klassen-Dokumentationsseite benannte Assembly als Verweis deinem Projekt hinzufügen.

    Gruß

    Rudolf

    Samstag, 26. März 2011 16:27
  • Hey,

    wenn du Visual Studio 2010 hast, kannst auf den Klassennamen der noch rot-Unterstrichen ist mit der rechter Maustaste klicken und hier "Auflösen" und da auf den Eintag mit dem + klicken, dann wird bei dir das Using eingefügt.

     

    Gruß

    Rudolf

    1 : ds ist ein c# forum also hab ich auch nicht visual studio ...

    2 : das funktioniert nicht immer ...

    3 : das geht in visual c# auch

    EDIT: naja es geht auf jedenfall ...

    Und soll ich jetzt einfach eine php datei schreiben  die variablen (die noch nicht intialisiert wurden in der php datei ) in eine mysql tabelle schreibt ? und muss ich die variablen deklarieren ?

    Samstag, 26. März 2011 16:59
  • 1 : ds ist ein c# forum also hab ich auch nicht visual studio ...
    2 : das funktioniert nicht immer ...
    3 : das geht in visual c# auch

    Also, Visual C# ist Visual Studio nur eben eingeschränkt auf eine Sprache (und einige andere Einschränkungen) und das ist C#. Des wegen ist es nicht falsch!

    Für den Fall das es nicht funktioniert habe ich dir eine alternative über die Suche in der msdn beschrieben.

    Gruß

    Rudolf

    Samstag, 26. März 2011 17:12
  •  

    Und soll ich jetzt einfach eine php datei schreiben  die variablen (die noch nicht intialisiert wurden in der php datei ) in eine mysql tabelle schreibt ? und muss ich die variablen deklarieren ?

    Samstag, 26. März 2011 18:21
  • Hi,

    1 : ds ist ein c# forum also hab ich auch nicht visual studio ...

    C# ist eine Programmiersprache. Dass Du das nicht weißt, ist nicht schlimm. Dein Rumgetue (eigentlich eher Rumgezicke) hier schon. Evtl. solltest Du eher auf was einfacheres umsteigen. Programmieren heißt nicht, per "Klicki-Klacki" was zuammenbasteln und dann zu denken, man hätte was geschafft.

    3 : das geht in visual c# auch

    Klar geht das dort auch. Aber was meinst Du eigentlich?
    Und soll ich jetzt einfach eine php datei schreiben  die variablen (die noch nicht intialisiert wurden in der php datei ) in eine mysql tabelle schreibt ? und muss ich die variablen deklarieren ?

    Ne, das erledigt sich alles von alleine. Such dir einfach irgendwo auf der Welt irgendeine Domain aus. Die stellen dir auf jeden Fall alles zur Verfügung, so dass Du nur noch MySuperDuperGame.SaveHighscore( ... ) schreiben musst. Versteht sich doch von selbst, dass Du selbst dich um nichts kümmern musst. Wo käme man denn sonst auch hin!? *kopfschüttel*

    3 : das geht in visual c# auch

    Klar geht das dort auch. Aber was meinst Du eigentlich?

    ---

    So, mal im Ernst: Entweder bist Du ein Forentroll (was ich mittlerweile stark annehme) oder aber Du kannst nicht programmieren. Das ist aber Grundlage, um eine Anwendung zu entwickeln. Daher solltest du zuerst mal einen Grundkurs in Programmierung absolvieren und dich dann weiter mit deiner "Anwendung" beschäftigen.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Samstag, 26. März 2011 20:25
    Moderator

  • Ne, das erledigt sich alles von alleine. Such dir einfach irgendwo auf der Welt irgendeine Domain aus. Die stellen dir auf jeden Fall alles zur Verfügung, so dass Du nur noch MySuperDuperGame.SaveHighscore( ... ) schreiben musst. Versteht sich doch von selbst, dass Du selbst dich um nichts kümmern musst. Wo käme man denn sonst auch hin!? *kopfschüttel*

     

    Oke danke für den Typ also werde ich es jetzt mal mit Mysql und php versuchen indem ich die variable deklariere und dann in eine Tabelle schreibe ...

    Tut mir Leid wenn ich mich verlesen hab .

    Sonntag, 27. März 2011 06:49
  • Hi,

    Oke danke für den Typ also werde ich es jetzt mal mit Mysql und php versuchen indem ich die variable deklariere und dann in eine Tabelle schreibe ...

    ich denke, Du hast keinen Server? Hast Du jedenfalls geschrieben.

    Wenn Du doch einen hast, kannst Du P*P, ASP, ASP.NET, ... nehmen. Die Abarbeitung selbst ist da überall gleich. Wenn Du aber mit P*P doch schon Erfahrungen gesammelt haben willst, müsstest Du eigentlich wissen, ob und wie man Variablen deklariert, Übergabeparameter entgegennimmt (auch wenn register_globals deaktiviert ist, was sehr empfehlenswert ist), ...

    Für ASP.NET könnte man im einfachsten Fall sowas machen:

    <%@ WebHandler Language="VB" Class="SaveHighscore" %>
    
    Imports System
    Imports System.Web
    Imports System.IO
    
    Public Class SaveHighscore : Implements IHttpHandler
      
      Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
    
      Dim PlayerId As Int64
      Dim Score  As Int64
      
        Int64.TryParse( context.Request.QueryString( "Player" ), PlayerId )
        Int64.TryParse( context.Request.QueryString( "Score" ), Score )
    
        Response.ContentType = "text/plain"
    
        If PlayerId > 0 AndAlso Score > 0 Then
          Try
            SaveHighscore( PlayerId, Score )
            Response.Write( "Ok" )
          Catch ex As Exception
            Response.Write( "Fehler: " & ex.Message )
          End Try
        Else
          Response.Write( "Fehler: Daten fehlen" )
        End If
    
      End Sub
    
      Protected Sub SaveHighscore( ByVal PlayerId As Int64, ByVal Score As Int64 )
      
      Dim ConnectionString As String = "SERVER=127.0.0.1;UID=Username;PWD=Passwort;DATABASE=Datenbankname"
      
      Dim Connection As New SqlConnection( ConnectionString )
        Connection.Open()
    
      Dim SqlStatement As String = "INSERT INTO Highscore( PlayerId, Score ) VALUES( @PlayerId, @Score )"  
      Dim SqlCommand  As New SqlCommand( SqlStatement, Connection )
    
        SqlCommand.Parameters.AddWithValue( "@PlayerId", PlayerId )  
        SqlCommand.Parameters.AddWithValue( "@Score",  Score )
        SqlCommand.ExecuteNonQuery()
    
        SqlCommand.Dispose()
    
        Connection.Close()
        Connection.Dispose()
    
      End Sub
     
      Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
        Get
          Return False
        End Get
      End Property
    
    End Class
    
    
    Aufrufen kannst Du das bspw. so:

    Dim Url  As String = "http://domain/SaveGighscore.ashx?Player={0}&Score={1}"
    Dim Result As String = New WebClient().DownloadString( String.Format( Url, PlayerId, Score ) )
    
    Nachtrag: Hab mal wieder vergessen, dass wir im C# Forum sind, C# Variante folgt gleich^^

    Tut mir Leid wenn ich mich verlesen hab .

    Es macht nichts, wenn Du dich verlesen hättest. Das, was Du schreibst, erweckt zumindest bei mir den Eindruck, dass Du dich nicht mit der Materie beschäftigen willst. Wenn das nicht so sein sollte, sorry, es macht aber auf mich diesen Eindruck.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Sonntag, 27. März 2011 13:44
    Moderator
  • Hi,

    hier dann die C# Variante:

    <%@ WebHandler Language="C#" Class="SaveHighscore" %>
    
    using System;
    using System.Web;
    using System.IO;
    
    public class SaveHighscore : IHttpHandler
    {
    
    
    	public void ProcessRequest(HttpContext context)
    	{
    		Int64 PlayerId = 0;
    		Int64 Score = 0;
    
    		Int64.TryParse(context.Request.QueryString("Player"), PlayerId);
    		Int64.TryParse(context.Request.QueryString("Score"), Score);
    
    		Response.ContentType = "text/plain";
    
    		if (PlayerId > 0 && Score > 0) {
    			try {
    				SaveHighscore(PlayerId, Score);
    				Response.Write("Ok");
    			} catch (Exception ex) {
    				Response.Write("Fehler: " + ex.Message);
    			}
    		} else {
    			Response.Write("Fehler: Daten fehlen");
    		}
    
    	}
    
    	protected void SaveHighscore(Int64 PlayerId, Int64 Score)
    	{
    
    		string ConnectionString = "SERVER=127.0.0.1;UID=Username;PWD=Passwort;DATABASE=Datenbankname";
    
    		SqlConnection Connection = new SqlConnection(ConnectionString);
    		Connection.Open();
    
    		string SqlStatement = "INSERT INTO Highscore( PlayerId, Score ) VALUES( @PlayerId, @Score )";
    		SqlCommand SqlCommand = new SqlCommand(SqlStatement, Connection);
    
    		SqlCommand.Parameters.AddWithValue("@PlayerId", PlayerId);
    		SqlCommand.Parameters.AddWithValue("@Score", Score);
    		SqlCommand.ExecuteNonQuery();
    
    		SqlCommand.Dispose();
    
    		Connection.Close();
    		Connection.Dispose();
    
    	}
    
    	public bool IsReusable {
    		get { return false; }
    	}
    
    }
    
    

    Der Code ist jetzt rein so dahingeschrieben (die VB Variante, die C# Variante kommt vom Telerik Codekonverter) und könnte daher noch Fehler enthalten. Den Weg sollte der Code aber zeigen.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Sonntag, 27. März 2011 13:48
    Moderator
  • Hi,

    und da ichs vergessen hab, noch die Variante für das Speichern der Werte in eine Datei anstelle einer Datenbank:

    Dazu muss nur der Code der Methode SaveGighscore ausgetauscht werden. Im einfachsten Fall so:

      System.IO.File.WriteAllText( String.Format( "X:\Ordner\{0}.txt", PlayerId.ToString(), Score.ToString() )

    Also einfach das , was in Sub SaveHighscore( ... ) bzw. protected void SaveHighscore( ... ) steht, durch die obige Zeile austauschen.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Sonntag, 27. März 2011 13:54
    Moderator
  • Eine Frage : was ist P*P ? Und wer hat gesagt das ich mich mit P*P auskenne ?

    Also und ich habe eine webspace mit Datenbank ...

    Sonntag, 27. März 2011 16:54
  • Hi,
    Und wer hat gesagt das ich mich mit P*P auskenne ?
    Du.
    weil mit php und mysql kenn ich mich besser aus das hab ich auch schon programmiert ...
    Oder solltest Du damit was anderes gemeint haben?
    Also und ich habe eine webspace mit Datenbank ...
    Öhm.
    ich hab garkein server ....

    Da hast Du noch geschrieben, dass Du keinen Server hast. Evtl. hast Du (ggfs. auch ich) irgendwas falsch verstanden.

    Du brauchst die Möglichkeit, eine Webanwendung laufen zu lassen. Ob auf einem eigenen Server oder auf irgendeinem Webspace ist erstmal egal. Wichtig dabei ist nur, welche Technologien unterstützt werden.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Sonntag, 27. März 2011 17:31
    Moderator
  • Hallo B.,

    Zu "P*P":

    [Peer-to-Peer – Wikipedia]   ->"P2P"
    http://de.wikipedia.org/wiki/Peer-to-Peer

    [Point-to-Point Protocol – Wikipedia]   ->"PPP"
    http://de.wikipedia.org/wiki/Point-to-Point_Protocol

    [File sharing - Wikipedia, the free encyclopedia]
    http://en.wikipedia.org/wiki/File_sharing

    [PHP – Wikipedia]   ->"PHP"
    http://de.wikipedia.org/wiki/PHP


    ciao Frank
    Sonntag, 27. März 2011 17:43
  • aber wo hab ich gesagt ich kenne mich mit p*p aus ?
    Montag, 28. März 2011 14:07