2013-03-21 13 views
11

Attualmente ho un codice che cerca una tabella di database attraverso una connessione SQL e inserisce le prime cinque righe in un Datatable (Table).Stampa contenuto di un DataTable

using(SqlCommand _cmd = new SqlCommand(queryStatement, _con)) 
{ 
    DataTable Table = new DataTable("TestTable"); 

    SqlDataAdapter _dap = new SqlDataAdapter(_cmd); 

    _con.Open(); 
    _dap.Fill(Table); 
    _con.Close(); 
} 

Come si stampa il contenuto di questa tabella sulla console affinché l'utente possa vederlo?

Dopo aver scavato, è possibile che io leghi il contenuto a una visualizzazione elenco o esiste un modo per stamparli direttamente? Non sono interessato al design in questa fase, solo ai dati.

Qualsiasi suggerimento sarebbe fantastico, grazie!

risposta

19

si può provare questo codice:

foreach (DataRow dataRow in Table.Rows) 
    { 
    foreach (var item in dataRow.ItemArray) 
    { 
    Console.WriteLine(item); 
    } 
    } 

Aggiornamento 1

DataTable Table = new DataTable("TestTable"); 
using(SqlCommand _cmd = new SqlCommand(queryStatement, _con)) 
    {   
     SqlDataAdapter _dap = new SqlDataAdapter(_cmd); 
     _con.Open(); 
     _dap.Fill(Table); 
     _con.Close(); 

     } 
Console.WriteLine(Table.Rows.Count); 
foreach (DataRow dataRow in Table.Rows) 
     { 
     foreach (var item in dataRow.ItemArray) 
     { 
     Console.WriteLine(item); 
     } 
     } 
+0

Ciao, Grazie per la risposta. Questo compila bene ma non viene mostrato nulla, è possibile che non ci sia nulla lì? – William

+0

puoi inserire un punto di rottura e verificare se il 'DataTable' è vuoto o no? – Arshad

+0

Ho un punto di interruzione, come posso controllare? – William

0

Ecco un'altra soluzione che scarica il tavolo per una virgola stringa separata:

using System.Data; 

public static string DumpDataTable(DataTable table) 
     { 
      string data = string.Empty; 
      StringBuilder sb = new StringBuilder(); 

      if (null != table && null != table.Rows) 
      { 
       foreach (DataRow dataRow in table.Rows) 
       { 
        foreach (var item in dataRow.ItemArray) 
        { 
         sb.Append(item); 
         sb.Append(','); 
        } 
        sb.AppendLine(); 
       } 

       data = sb.ToString(); 
      } 
      return data; 
     }