Le skin que j'ai écrit ne prend que le texte sans la valeur afin d'avoir une belle apparence. Utilisez maintenant cette méthode pour résoudre la manière peu pratique de prendre uniquement la valeur du texte. Vous n'avez besoin que d'une méthode pour interroger toutes les données de ce tableau. Bien sûr, vous ne pouvez également renvoyer que ces deux listes.
code
/// <résumé>
/// Récupère l'index en fonction du nom de la colonne
/// </summary>
/// <param name="fiId">Nom de la colonne</param>
/// <returns>Index de colonne</returns>
chaîne privée GetFunctionNameByName (nom de chaîne)
{
var result = this.objWSM.GetFunctionInfo().AsEnumerable().Where(f1 => f1["fiName"].ToString().Trim() == Name.ToString().Trim()).FirstOrDefault() ;
return result["fiId"].ToString();
}
GetFunctionInfo est une méthode qui interroge toutes les informations du tableau
/// <résumé>
/// Récupère le nom de la colonne en fonction de l'index de la colonne
/// </summary>
/// <param name="fiId">Index de colonne</param>
/// <returns>Nom de la colonne</returns>
chaîne privée GetFunctionNameById (int fiId)
{
var result = this._fiTable.AsEnumerable().Where(fi => Convert.ToInt32(fi["fiId"]) == fiId).FirstOrDefault();
return result["fiName"].ToString();
}
Les deux méthodes correspondent, je pense qu'il est beaucoup plus pratique d'interroger de cette façon. Cela peut être effectué directement à la réception. Lors de la connexion à la base de données, il vous suffit d'interroger toutes les méthodes en même temps.
Laissez-moi vous expliquer cette étape.
this.objWSM.GetFunctionInfo().AsEnumerable().Where(f1 => f1["fiName"].ToString().Trim() == Name.ToString().Trim()).FirstOrDefault();
this.objWSM.GetFunctionInfo() est une méthode pour interroger tous
AsEnumerable().Where() renvoie une ligne générique, qui peut être interrogée à l'aide d'expressions LinQ
f1 => f1["fiName"].ToString().Trim() == Name.ToString().Trim())Expression Linq
F1 est le nom d'une ligne nouvellement générée
f1["fiName"] Bien sûr c'est le nom de la colonne dans cette ligne, => suivi de la condition et précédé de l'ensemble
f1["fiName"].ToString().Trim() == Name.ToString().Trim() signifie que s'il y a deux valeurs égales dans cette ligne, supprimez-les
FirstOrDefault(); signifie prendre la première ligne
À ce stade, le problème est presque résolu. Tant qu'il existe une méthode pour interroger ces deux colonnes, écrivez ces deux méthodes à la réception, et tout ira bien à chaque fois. Il n'est pas nécessaire d'écrire deux méthodes spéciales. accéder à la base de données, ce qui semble très pratique.