Jak wyświetlić dane podczas debugowania

Dopiero zaczynam używać ADO.NET i DataSets i DataTables. Jeden problem, który mam jest to wydaje się dość trudno powiedzieć, jakie wartości są w tabeli danych podczas próby debugowania.

Jakie są najprostsze sposoby szybkiego sprawdzenia, jakie wartości zostały zapisane w DataTable? Czy jest jakiś sposób, aby zobaczyć zawartość w Visual Studio podczas debugowania lub jest jedyną opcją, aby zapisać dane do pliku?

Stworzyłem małą funkcję użytkową, która będzie pisać dane do pliku CSV. Jednak powstały plik CSV został odcięty. Około 3 linijki z tego, co powinno być ostatnią linijką w środku wypisywania systemu.Guid plik po prostu się zatrzymuje. Nie mogę powiedzieć, czy jest to problem z moją metodą konwersji CSV, czy pierwotną populacją DataTable.

Update

Zapomnij o ostatniej części, o której zapomniałem spłukać mojego stream Writera.

Author: Nick Knowlson, 2009-08-26

4 answers

Z zestawem punktów przerwania, po wypełnieniu DataTable lub DataSet, możesz zobaczyć szkło powiększające, jeśli najedziesz na zmienną. Jeśli na niego klikniesz, wyświetli się wizualizer DataTable, o którym możesz przeczytać tutaj .

Na tym obrazku, który widzisz poniżej, DT jest moją zmienną DataTable i breakpoint został trafiony kilka linii poniżej pozwalając mi najechać na tę wartość. Korzystanie Z Programu Visual Studio 2008.

alt text

DataTable Visualizer (obraz kredyt):
alt text

 175
Author: RSolberg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-27 14:41:24

Dodałem dwie linie do mojej aplikacji wewnątrz klasy nazwanej po zewnętrznej klasie:

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

To powinno zatrzymać aplikację i wywołać ją w trybie debugowania. Następnie możesz przejść przez nią i spojrzeć na wartości w swoich obiektach, gdy najedziesz na nie kursorem.

 1
Author: pave,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-26 20:04:12

Ustaw punkt przerwania na zbiorze danych / datatable (klawisz skrótu F9 dla punktu przerwania) i uruchom aplikację (f5 jest skrótem), gdy punkt przerwania pojawi się najedź myszą na zestaw danych / DataTable kliknij na szkle pokazanym na obrazie najazdu w visual studio .

Uwaga: W web config zaznaczenie compilation debug="true" jest prawdziwe .W przeciwnym razie visual studio nie przejdzie do debugowania .

 1
Author: anishMarokey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-26 20:09:16
    /// <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();

    } 
 0
Author: Yordan Georgiev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-03 19:31:23