2017-03-02 41 views
1

剛剛接觸編程和C#。我有一個程序讀取RFID標籤並將數據保存在MariaDb數據庫中,但是隨時關閉應用程序並重新啓動時,排名也從1重新開始。而我希望我的代碼讀取數據庫,選擇最高排名,然後啓動遞增。從數據庫讀取等級並在C上增加它#

 public void AddEnregistrement_local(Enregistrement enregistrement) 
    { 
     Int32 max_rang = 0; 
     try 
     { 

      // Ouverture de la connexion SQL 

      // Création d'une commande SQL en fonction de l'objet connection 
      MySqlCommand cmd_local = this.connection_local.CreateCommand(); 
      cmd_local.CommandText = @"SELECT rang_tra FROM traverser_essai WHERE rang_tra = (SELECT MAX(rang_tra) FROM traverser_essai)"; 
      { 
       { 
        this.connection_local.Open(); 
        max_rang = Convert.ToInt32(cmd_local.ExecuteScalar()); 
        max_rang++; 
        // Requête SQL   
        cmd_local.CommandText = @"INSERT INTO traverser_essai (code_cse, code_ppa, code_crr, temps_tra, rang_tra) VALUES (@code_cse, @code_ppa, @code_crr, @temps_tra, @max_rang)"; 
        // utilisation de l'objet enregistrement passé en paramètre 
        cmd_local.Parameters.AddWithValue("@code_cse", enregistrement.code_cse); 
        cmd_local.Parameters.AddWithValue("@code_ppa", enregistrement.code_ppa); 
        cmd_local.Parameters.AddWithValue("@code_crr", enregistrement.code_crr); 
        cmd_local.Parameters.AddWithValue("@temps_tra", enregistrement.temps_tra); 
        cmd_local.Parameters.AddWithValue("@max_rang", enregistrement.max_rang); 
        // Exécution de la commande SQL 
        cmd_local.ExecuteNonQuery(); 
        // Fermeture de la connexion 
        this.connection_local.Close(); 
       } 
      } 
     } 
     catch 
     { 

     } 
    } 
+0

我想你使用了錯誤的變量這裏'cmd_local.Parameters.AddWithValue( 「@ max_rang」,enregistrement.max_rang)'你不應該使用'cmd_local.Parameters.AddWithValue( 「@ max_rang」,max_rang)'代替? – dbraillon

+0

哦,是啊!只是改變它,它的工作。非常感謝@dbraillon –

+0

不客氣,我只是發佈了答案,所以你可以接受它。 – dbraillon

回答

0

我想你使用了錯誤的變量在這裏cmd_local.Parameters.AddWithValue("@max_rang", enregistrement.max_rang)你應該使用cmd_local.Parameters.AddWithValue("@max_rang", max_rang)代替。