El skin que escribí solo toma el Texto sin el Valor para verse bien. Ahora usa este método para resolver la forma inconveniente de tomar solo el Valor del Texto. Solo necesitas un método para consultar todos los datos en esta tabla. Por supuesto, también puedes devolver solo estos dos List.
código
/// <resumen>
/// Obtener el índice según el nombre de la columna
/// </summary>
/// <param name="fiId">Nombre de columna</param>
/// <returns>Índice de columna</returns>
cadena privada GetFunctionNameByName (nombre de cadena)
{
var resultado = this.objWSM.GetFunctionInfo().AsEnumerable().Where(f1 => f1["fiName"].ToString().Trim() == Nombre.ToString().Trim()).FirstOrDefault() ;
devolver resultado["fiId"].ToString();
}
GetFunctionInfo es un método que consulta toda la información de la tabla.
/// <resumen>
/// Obtener el nombre de la columna según el índice de la columna
/// </summary>
/// <param name="fiId">Índice de columna</param>
/// <returns>Nombre de columna</returns>
cadena privada GetFunctionNameById(int fiId)
{
var resultado = this._fiTable.AsEnumerable().Where(fi => Convert.ToInt32(fi["fiId"]) == fiId).FirstOrDefault();
devolver resultado["fiName"].ToString();
}
Los dos métodos son correspondientes. Creo que es mucho más conveniente consultar de esta manera. Se puede completar directamente en la recepción. Al conectarse a la base de datos, solo necesita consultar todos los métodos a la vez.
Déjame explicarte este paso.
this.objWSM.GetFunctionInfo().AsEnumerable().Where(f1 => f1["fiName"].ToString().Trim() == Nombre.ToString().Trim()).FirstOrDefault();
this.objWSM.GetFunctionInfo() es un método para consultar todos
AsEnumerable().Where() devuelve una fila genérica, que se puede consultar utilizando expresiones LinQ
f1 => f1["fiName"].ToString().Trim() == Nombre.ToString().Trim())Expresión Linq
F1 es el nombre de una fila recién generada
f1["fiName"]. Por supuesto, es el nombre de la columna en esta fila, => seguido de la condición y precedido del conjunto.
f1["fiName"].ToString().Trim() == Name.ToString().Trim() significa que si hay dos valores iguales en esta línea, sáquelos
FirstOrDefault(); significa tomar la primera fila
En este punto, el problema está casi resuelto. Siempre que haya un método para consultar estas dos columnas, escriba estos dos métodos en la recepción y estará bien siempre. No es necesario escribir dos métodos especiales. acceder a la base de datos, lo cual resulta muy conveniente.