c# - recorrer - obtener valor celda datatable jquery
¿Obtener valores datarow en una cadena? (4)
Tengo un conjunto de datos llamado "resultados" con varias filas de datos. Me gustaría obtener estos datos en una cadena, pero no puedo entender cómo hacerlo. Estoy usando el siguiente código:
string output = "";
foreach (DataRow rows in results.Tables[0].Rows)
{
output = output + rows.ToString() + "/n";
}
Sin embargo, creo que me estoy perdiendo algo porque esto no está funcionando. ¿Alguien me puede apuntar en la dirección correcta?
Debe especificar de qué columna del datarow desea extraer datos.
Intenta lo siguiente:
StringBuilder output = new StringBuilder();
foreach (DataRow rows in results.Tables[0].Rows)
{
foreach (DataColumn col in results.Tables[0].Columns)
{
output.AppendFormat("{0} ", rows[col]);
}
output.AppendLine();
}
He hecho esto mucho a mí mismo. Si solo necesita una lista separada por comas para todos los valores de fila, puede hacer esto:
StringBuilder sb = new StringBuilder();
foreach (DataRow row in results.Tables[0].Rows)
{
sb.AppendLine(string.Join(",", row.ItemArray));
}
Un StringBuilder es el método preferido ya que la concatenación de cadenas es significativamente más lenta para grandes cantidades de datos.
Puedes obtener un valor de columnas haciendo esto
rows["ColumnName"]
También tendrás que lanzar al tipo apropiado.
output += (string)rows["ColumnName"]
Su objeto de rows
contiene un atributo de Item
donde puede encontrar los valores para cada una de sus columnas. No puede esperar que las columnas se concatenen cuando haga un .ToString()
en la fila. Debes acceder a cada columna de la fila por separado, usa for
o foreach
para recorrer la matriz de columnas.
Aquí, eche un vistazo a la clase:
http://msdn.microsoft.com/en-us/library/system.data.datarow.aspx