Error al recorrer las filas de una tabla en C#

publicado por: Anonymous

Ya tengo la estructura basica o sintactica que deberia hacer funcionar a mi bucle, pero por alguna razon me sale este error:

Error 20 La instrucción foreach no puede funcionar en variables de
tipo ‘System.Data.DataTable’ porque ‘System.Data.DataTable’ no
contiene ninguna definición pública para
‘GetEnumerator’ C:UsersNQ054DesktopSGSIAApp_CodeconfiguracionEmpresa.cs 141 8 C:…SGSIA

La sintaxis de mi foreach es la siguiente

   foreach (DataRow datos in plantas)
   {
       crearHTML(datos.ToString);
   }

La creacion de mi tabla es la siguiente:

    storedProcedure sp = new storedProcedure("DBSGSIAConnectionString");
   DataTable plantas;
   plantas = new DataTable();
   string planta;
    string query = "select * from v_DatosEmpresa;";
    plantas = sp.getValues(query);
   planta= Convert.ToString(plantas);

solución

Cambia esta linea:

foreach (DataRow datos in plantas)

por esta otra:

foreach (DataRow datos in plantas.rows)

De esta forma también puede funcionar:

foreach (var datos in plantas.rows)

Explicación:

No puedes iterar el objeto DataTable, pero si puedes iterar o recorrer la colección de rows que contiene, de allí deriva el error.

Saludos.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *