tipos paginas pageview hitcallback google debugger debugging ado.net csv datatable dataset

debugging - paginas - tipos de hit google analytics



Cómo ver una DataTable mientras se depura (4)

Agregué dos líneas en mi aplicación dentro de una clase nombrada después de la clase más externa:

public MyClass() { // The following (2) lines are used for testing only. Remove comments to debug. System.Diagnostics.Debugger.Launch(); System.Diagnostics.Debugger.Break(); }

Esto debería detener la aplicación y abrirla en modo de depuración. Luego puede atravesarlo y observar los valores en sus objetos mientras pasa sobre ellos.

Estoy empezando a usar ADO.NET y DataSets y DataTables. Un problema que tengo es que parece bastante difícil decir qué valores hay en la tabla de datos cuando intento depurar.

¿Cuáles son algunas de las formas más fáciles de ver rápidamente qué valores se han guardado en una DataTable? ¿Hay alguna forma de ver los contenidos en Visual Studio durante la depuración o es la única opción para escribir los datos en un archivo?

Creé una pequeña función de utilidad que escribirá una DataTable en un archivo CSV. Sin embargo, el archivo CSV resultante se cortó. Aproximadamente 3 líneas de lo que debería haber sido la última línea en el medio de escribir un Sistema. El archivo se detiene. No puedo decir si esto es un problema con mi método de conversión de CSV, o la población original de DataTable.

Actualizar

Olvida la última parte que me olvidé de descargar mi guionista.


Con un conjunto de puntos de interrupción, después de que se llene el DataTable o DataSet, puede ver una lupa si coloca el mouse sobre la variable. Si hace clic en él, se abrirá DataTable Visualizer, que puede leer here .

En esta imagen se ve a continuación, dt es mi variable DataTable y el punto de corte se tocó unas pocas líneas más abajo, lo que me permite pasar el cursor sobre este valor. Usando Visual Studio 2008.

DataTable Visualizer ( crédito de imagen ):


establezca el punto de ruptura en el conjunto de datos / tabla de datos (tecla de acceso directo f9 para el punto de interrupción) y ejecute su aplicación (f5 es la tecla de acceso directo) Cuando el punto de interrupción llegue, pase el mouse sobre el conjunto de datos / tabla de datos. .

Nota: compruebe la depuración de compilación = "verdadero" es verdadero en la configuración web. El estudio visual no se aplicará para la depuración.


/// <summary> /// Dumps the passed DataSet obj for debugging as list of html tables /// </summary> /// <param name="msg"> the msg attached </param> /// <param name="ds"> the DataSet object passed for Dumping </param> /// <returns> the nice looking dump of the DataSet obj in html format</returns> public static string DumpHtmlDs(string msg, ref System.Data.DataSet ds) { StringBuilder objStringBuilder = new StringBuilder(); objStringBuilder.AppendLine("<html><body>"); if (ds == null) { objStringBuilder.AppendLine("Null dataset passed "); objStringBuilder.AppendLine("</html></body>"); WriteIf(objStringBuilder.ToString()); return objStringBuilder.ToString(); } objStringBuilder.AppendLine("<p>" + msg + " START </p>"); if (ds != null) { if (ds.Tables == null) { objStringBuilder.AppendLine("ds.Tables == null "); return objStringBuilder.ToString(); } foreach (System.Data.DataTable dt in ds.Tables) { if (dt == null) { objStringBuilder.AppendLine("ds.Tables == null "); continue; } objStringBuilder.AppendLine("<table>"); //objStringBuilder.AppendLine("================= My TableName is " + //dt.TableName + " ========================= START"); int colNumberInRow = 0; objStringBuilder.Append("<tr><th>row number</th>"); foreach (System.Data.DataColumn dc in dt.Columns) { if (dc == null) { objStringBuilder.AppendLine("DataColumn is null "); continue; } objStringBuilder.Append(" <th> |" + colNumberInRow.ToString() + " | "); objStringBuilder.Append( dc.ColumnName.ToString() + " </th> "); colNumberInRow++; } //eof foreach (DataColumn dc in dt.Columns) objStringBuilder.Append("</tr>"); int rowNum = 0; foreach (System.Data.DataRow dr in dt.Rows) { objStringBuilder.Append("<tr><td> row - | " + rowNum.ToString() + " | </td>"); int colNumber = 0; foreach (System.Data.DataColumn dc in dt.Columns) { objStringBuilder.Append(" <td> |" + colNumber + "|" ); objStringBuilder.Append(dr[dc].ToString() + " </td>"); colNumber++; } //eof foreach (DataColumn dc in dt.Columns) rowNum++; objStringBuilder.AppendLine(" </tr>"); } //eof foreach (DataRow dr in dt.Rows) objStringBuilder.AppendLine("</table>"); objStringBuilder.AppendLine("<p>" + msg + " END </p>"); } //eof foreach (DataTable dt in ds.Tables) } //eof if ds !=null else { objStringBuilder.AppendLine("NULL DataSet object passed for debugging !!!"); } return objStringBuilder.ToString(); }