Comment sélectionner un nombre supérieur et un nombre inférieur à l'aide de LINQ To SQL en C #

J'ai une TABLE dans la database SQL il y a des colonnes dans TABLE ID,Subject,Body,Status,TimeDate dans les 400 données de rangée et chacun j'ai pris un ID comme P_Key et la spécification d'identité est oui.

Voici Id = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 etc..

Je veux sélectionner un plus grand identifiant de table basé sur l'ancien identifiant enregistré comme j'ai enregistré l'ID 12 dans im get le même id comme ceci avec Linq Query ci-dessous:

  public static int CheckId() { DataClassesDataContext con = new DataClassesDataContext(Globals.con); var q = from v in con.TABLE where v.Id== 12 & v.Status == Active select v.Id; foreach (var val in q) { return Convert.ToInt32(val); } return 0; } 

le je peux returnner un plus grand ID puis 12. et il y a aussi un problème. s'il y a un plus grand ID manquant dans l'exemple de DB, l'ID 13 est manquant alors j'obtiendrai l'ID 14 dans ce cas. s'il vous plaît laissez-moi savoir comment puis-je get id comme ça je veux de db en utilisant linq requête.

Utiliser Min

 return con.<TABLE> .Where(v=>v.ID > 12) .Select(v=>v.ID) .DefaultIfEmpty() .Min(); 

J'ai fait un échantillon pour toi

  List<Int32> test = new List<Int32>{1,2,3,4,5,6,7,8,9,10,11,12,14,13,15,16}; var min = test.Where(x=>x>12).Min(); 

Donne le résultat 13 seulement, même quand 14 est le premier plus grand

Dans ton cas

 //get a table object Table table = new Table() //if you want whole row. table = con.Table.Where(x=>x.id>12).MIN(); 

Basé sur le code que vous avez déjà:

 DataClassesDataContext con = new DataClassesDataContext(Globals.con); var q = from v in con.TABLE where v.Id > 12 & v.Status == Active orderby v.Id select v.Id; return q.Take(1); // to return the whole row // or return q.Take(1).Id; // to return only the Id 

Cela returnnera la première ligne répondant aux critères (id> 12, status = active). Ajoutez le code de gestion des erreurs si nécessaire.