Columna de DataTable a cadena separada por comas

Esteban Sierra

Hoy he necesitado generar una cadena de texto separada por comas con todos los valores de las filas de una columna específica de un DataTable y tras realizar algunas búsquedas por internet, he localizado la forma de hacerlo en una simple línea de código C#.

Esto me ha servido para poder generar una consulta con un filtro IN en el que se incluyen todos esos valores. A continuación, os pongo un ejemplo para que sea más fácil de entender.

//Supongamos que tenemos el siguiente DataTable con las columnas ID y Nombre 
DataTable dt = new DataTable(); 
dt.Columns.Add("ID"); dt.Columns.Add("Nombre"); 

/* Añadimos algunos datos de ejemplo, en un caso real tendríamos el DataTable 
* relleno con los datos de alguna tabla de nuestra base de datos. */ DataRow dr = dt.NewRow(); dr["ID"] = 1; dr["Nombre"] = "Coche"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["ID"] = 2; dr["Nombre"] = "Moto"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["ID"] = 3; dr["Nombre"] = "Bus"; dt.Rows.Add(dr); /* Creamos una cadena de texto donde se concatenan, separados por coma,
* todos los valores de la columna ID. */
//La variable filtroIn tendría el siguiente valor: "1,2,3". string filtroIn = dt.AsEnumerable().Select(row => row["ID"].ToString()).Aggregate((s1, s2) => String.Concat(s1, "," + s2)); DataTable dtResultados = new DataTable(); string cadenaConexion = [cadena conexión a base de datos];
//Esta cadena tendría el siguiente valor SELECT * FROM table WHERE id_vehiculo IN (1,2,3) 
string consulta = "SELECT * FROM table WHERE id_vehiculo IN (" + filtroIn + ")"; SqlDataAdapter da = new SqlDataAdapter(consulta, cadenaConexión); da.Fill(dtResultados);

Con el ejemplo completo ya tendríamos nuestra consulta con el filtro IN, que como habéis podido ver, una simple línea conseguimos pasar una columna de DataTable a cadena separada por comas.

string filtroIn = dt.AsEnumerable().Select(row => row["ID"].ToString()).Aggregate((s1, s2) => String.Concat(s1, "," + s2));

Espero que esta publicación os haya servido de ayuda. Agradecería un comentario o que la compartáis con alguien que también le pueda servir.

4 comentarios en «Columna de DataTable a cadena separada por comas»

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies