Lire une valeur à partir de la dernière ligne d'une base de données SQL Server CE

J'ai une base de données avec quelques colonnes et l'un des qui est appelé ID (datatype = int).

J'ai besoin de connaître la valeur de la ID de la dernière ligne (pour la dernière ligne, je veux dire le dernier créé).

J'ai essayé ceci, mais il donne une erreur à l'exécution:

string query = "SELECT * FROM Customer WHERE ID = (SELECT MAX(ID) FROM Customer)";
SqlCeCommand comSelect = new SqlCeCommand(query, connection);
SqlCeDataReader rdr = comSelect.ExecuteReader();
int ID = rdr.GetInt32(6);

(GetInt32(6) parce que ID est la 6e colonne)

Merci à tous, et désolé pour mon anglais.

P. S.

Client est ma table et ID sont mis dans l'ordre croissant. La première ligne créée a ID = 0 la deuxième ID = 1 etc.

J'ai besoin de savoir le dernier id parce que quand je créer un nouveau client, je veux régler son ID précédente client ID+1

Erreurs:

Exception de type 'System.Les données.SqlServerCe.SqlCeException " dans System.Data.SqlServerCe.dll non gérée dans le code de l'utilisateur

  • Et qui d'erreur à l'exécution obtenez-vous?
  • Une Exception de type 'System.InvalidOperationException " dans System.Data.SqlServerCe.dll
  • Quel est le message de l'exception?
  • le message de l'exception et de la stacktrace
  • Pourquoi ne pas simplement utiliser incrément automatique?
  • Si vous avez juste besoin de la dernière id, pourquoi ne pas simplement d'exécuter le query = "SELECT MAX(ID) from Client" ?
  • J'espère que vous avez besoin de se référer GetInt32(5) si c'est le 6e colonne depuis la colonne commence par 0 en fonction de l'indice de
  • Votre stratégie serait thread dangereux, l'auto incrément est le chemin à parcourir.
  • GetInt32(6) est à droite c'est le 7 colonnes, désolé 😛
  • Comment puis-je exécuter la requête et obtenir l'int ?

InformationsquelleAutor Marco Cadei | 2013-08-18