2013-03-21 59 views
11

目前我的代码通过SQL连接查找数据库表,并将前五行插入到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(); 
} 

然后,我如何将此表的内容打印到控制台以供用户查看?

经过深入研究,有可能我应该将内容绑定到列表视图,还是有办法直接打印它们?我不关心现阶段的设计,只是数据。

任何指针会很好,谢谢!

回答

19

你可以试试这个代码:

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

更新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

嗨,感谢你的回答。这个编译好,但没有显示,是否有可能没有什么? – William 2013-03-21 12:55:07

+0

你可以把一个断点检查'DataTable'是否为空吗? – Arshad 2013-03-21 12:56:41

+0

我有一个断点,我该如何检查? – William 2013-03-21 12:58:43

0

这里是一个转储表到一个逗号分隔的字符串另一种解决方案:

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; 
     }