使用C#正确显示数组

时间:2014-12-14 03:21:02

标签: c# arrays loops for-loop foreach

以下是我的代码。我试图将一些数据显示为来自SQL服务器的数组绘图。问题是,当我到达foreach时,我似乎无法正确显示数据,而是要么不断重复数据,要么就是不显示数据。如果这些问题看起来很基本,我很抱歉我是编程的菜鸟,而且从我研究过的内容来看,我认为我需要将writeline更改为写入,并且可能会执行另一个循环....只是不完全确定任何建议会有所帮助。

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            string connection = "Data Source=INIWS64-04;Initial Catalog=INEW18_2013;Network Library=DBMSSOCN; User ID=recordsadmin;Password=security";
            DataTable table = new DataTable();
            string Sql = "";
            Sql = "select * from qryEDocRequest order by Request_ID";
            using (SqlConnection conn = new SqlConnection(connection))
            {
                try
                {
                    conn.Open();
                    SqlCommand comm = new SqlCommand(Sql, conn);
                    using (SqlDataAdapter adapter = new SqlDataAdapter(comm))
                    {
                        adapter.Fill(table);
                    }
                    for (int i = 0; i < table.Rows.Count; ++i)
                    {
                        DataRow row = table.Rows[i];
                        for (int w = 0; w < table.Columns.Count; ++w)
                        {
                            StringBuilder array = new StringBuilder();
                            foreach (Char Item in row.ItemArray.ToString())
                            {
                                array.Append(Item + ",");
                            }
                            Console.WriteLine(array);


                        }
                    }
                }

                catch (Exception Test)
                {
                    throw Test;
                }
            }
        }
    }
}

2 个答案:

答案 0 :(得分:2)

这是一种更轻松的方式来做你想做的事情:

using (SqlDataAdapter adapter = new SqlDataAdapter(comm))
{
    adapter.Fill(table);
}

foreach(var row in table.Rows)
{
    Console.WriteLine(String.Join(",", row.ItemArray));
}

答案 1 :(得分:0)

根据您的回复,我能够使用foreach解决如下

{
adapter.Fill(table);
}
foreach (DataRow row in table.Rows)
{
Console.WriteLine(String.Join(",", row.ItemArray));
}

非常感谢这是最简单的方法