entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

La matriz de entrada es más larga que la cantidad de columnas en esta tabla

Buenas tardes estoy desarrollando un sistema y me marca el siguiente error. La matriz de entrada es más larga que la cantidad de columnas en esta tabla.

Este es mi código

//CSV to DataTable
            DataTable dt = new DataTable();
            var s = resultado["csv"].ToString();
            s = s.Replace("\"", "");
            string[] tableData = s.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
            var col = from cl in tableData[0].Split(",".ToCharArray())
                      select new DataColumn(cl);
            dt.Columns.AddRange(col.ToArray());

            foreach (var item in tableData.Skip(1))
            {
                dt.Rows.Add(item.Split(",".ToCharArray()));
            }

1 Respuesta

3votos

magarzon Puntos30650

Esto es porque una de las líneas tiene más columnas que la primera, que es la que se toma como referencia para saber el número de columnas.

Depende luego lo que quieras hacer con esa línea con columnas de más, pero por ejemplo, si quieres ignorarla, tienes que hacerlo así:

            DataTable dt = new DataTable();
            var s = resultado["csv"].ToString();
            s = s.Replace("\"", "");
            string[] tableData = s.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
            var col = from cl in tableData[0].Split(",".ToCharArray())
                      select new DataColumn(cl);
            dt.Columns.AddRange(col.ToArray());

            foreach (var item in tableData.Skip(1))
            {
                var columns = item.Split(",".ToCharArray();
                if (columns.Length == dt.Columns.Count) {
                   dt.Rows.Add(columns));
                }
            }

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta