【问题标题】:How can I make 'score record' with database update?如何通过数据库更新制作“分数记录”?
【发布时间】:2016-03-26 21:19:23
【问题描述】:

我正在为我的大学项目制作百万富翁游戏,但我被困在数据库部分。游戏在游戏开始前询问玩家姓名。所以我以名字/钱的形式记录到数据库中。 我可以记录分数。但是如果玩家(同名登录)完成比以前更高,我想更改记录。并在标签中显示这个分数。(在他/她玩的时候显示给玩家。)我该怎么做?此代码有效:

public void skorK()
        {

                    string gelenVeri = skor.veri;
                    string dbConnectionString = ("Data Source=sorular.db;Version=3;");
                    SQLiteConnection sqliteCon = new SQLiteConnection(dbConnectionString);
                    try
                    {
                        sqliteCon.Open();
                        string Query = ("INSERT INTO skor(isim, puanSkor) VALUES ('" + gelenVeri + "', '" + mevcutPara + "')");
                        SQLiteCommand createCommand = new SQLiteCommand(Query, sqliteCon);
                        createCommand.ExecuteNonQuery();

我试过这个。但我什至不确定它是否有效。我认为它什么都不做:

string degistir = ("SELECT count(*) FROM skor WHERE isim='" + gelenVeri + "'");
                        SQLiteCommand createCommand2 = new SQLiteCommand(degistir, sqliteCon);
                            int isimDegis = Convert.ToInt32(createCommand2.ExecuteScalar());

                        if (isimDegis > 0)
                        {
                            string degistir2 = ("UPDATE skor SET isim='"+ gelenVeri +"', puanSkor='" + mevcutPara + "'");

                        } 

【问题讨论】:

    标签: c# mysql database sqlite record


    【解决方案1】:

    仅使用 SQL 功能来实现它怎么样?完整的命令可能如下所示:

    UPDATE skor SET puanSkor=MAX(puanSkor, @newScore) WHERE isim=@yourPlayerName
    

    可以基于parameters注入用c#代码实现:

    string query = ("UPDATE skor SET puanSkor=MAX(puanSkor, @newScore) WHERE isim=@yourPlayerName");
    SQLiteCommand updateHighscroeCommand = new SQLiteCommand(query, sqliteCon);
    updateHighscroeCommand.Parameters.AddWithValue("@newScore", mevcutPara);
    updateHighscroeCommand.Parameters.AddWithValue("@yourPlayerNam", gelenVeri);
    updateHighscroeCommand.ExecuteNonQuery();
    

    使用参数集合是一种很好的做法,可以防止安全问题并使代码更有条理。您可以在ado.net tutorials 中了解更多示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-26
      • 1970-01-01
      • 1970-01-01
      • 2017-06-22
      • 1970-01-01
      • 2016-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多