using System;
using System.Data;
using System.Data.SqlClient;namespace PopDataSet
{
    class PopDataSet
    {
        static void Main(string[] args)
        {
            //create connection
            SqlConnection conn = new SqlConnection(@"server = XP-201009071433; integrated security = sspi;Database = Northwind;");            //Query
            string sql = @"select
                                productname,
                                unitprice
                            from
                                products
                            where
                                unitprice<20
                           ";
            try
            {
                //Open connction
                conn.Open();                //Create data adapter
                SqlDataAdapter da = new SqlDataAdapter(sql,conn);                //Create and fill dataset
                DataSet ds = new DataSet();
                da.Fill(ds,"products");                //Get data table
                DataTable dt = ds.Tables["products"];                //Display data
                foreach (DataColumn row in dt.Rows)
                {
                    foreach (DataColumn col in dt.Columns)
                        Console.WriteLine(row[col]);
                    Console.WriteLine("".PadLeft(20),'=');
                }
            }
            catch (SqlException ex)
            {
                Console.WriteLine(ex.ToString());
            }
            finally
            {
                //Close Connection
                conn.Close();
                Console.ReadLine();
            }
        }
    }
}
Error 1 Cannot apply indexing with [] to an expression of type 'System.Data.DataColumn' 错误就在红色划线处,我想用嵌套的foreach循环,访问每一列,但是这个错误不知道怎么弄

解决方案 »

  1.   

    foreach (DataColumn row in dt.Rows)你用column去访问rows能不报错吗?
      

  2.   

    foreach (DataColumn row in dt.Rows),这句话,逆循环的是rows,而变量row是DataColumn类型,不符合
      

  3.   

     foreach (DataRow row in dt.Rows)
                    {
                        foreach (DataColumn col in dt.Columns)
                            Console.WriteLine(row[col]);
                        Console.WriteLine("".PadLeft(20),'=');
                    }
      

  4.   

    foreach (DataRow row in table.Rows)
      {
      foreach (DataColumn column in table.Columns)
      {
      Console.WriteLine(row[column]);
      }
      }
      

  5.   

      //Display data
                    foreach (DataColumn row in dt.Rows)
                    {
                        foreach (DataColumn col in dt.Columns)
                            Console.WriteLine(row[col]);
                        Console.WriteLine("".PadLeft(20),'=');
                    }
    改成: foreach (DataRow row in dt.Rows)
                    {
                        foreach (DataColumn col in dt.Columns)
                            Console.WriteLine(row[col]);
                        Console.WriteLine("".PadLeft(20),'=');
                    }