本帖最后由 chirea 于 2012-10-14 12:31:41 编辑

解决方案 »

  1.   

    就和使用类的属性一模一样,以下是微软MSDN的示例代码
    CustomerDataSet customers = new CustomerDataSet();
    SqlDataAdapter adapter = new SqlDataAdapter(
      "SELECT * FROM dbo.Customers;",
      "Data Source=(local);Integrated " +
      "Security=SSPI;Initial Catalog=Northwind");adapter.Fill(customers, "Customers");foreach(CustomerDataSet.CustomersRow customerRow in customers.Customers)
      Console.WriteLine(customerRow.CustomerID);
      

  2.   

    还要foreach循环?
    强类型还没有弱类型datatable好用?
      

  3.   

    这跟类型没有关系,
    你用linq或者迭代方式都可以替代循环的,不同的书写风格而已还有,弱类型强类型的说法是对面向对象设计的误读
    数据就是数据,在通信中就应该是所谓“无类型的”,他们实现的是设计接口,
    接口才是真正声明类型的,
    一楼微软的例子中,微软的做法就是根据xml接口自动实现了CustomerId和对应字段的匹配,
    只不过,这个过程是微软替我们实现的,
    我们自己去实现更加容易和高效,因为这样就不用重复提供给ado.net一份接口的副本了
      

  4.   

    是不是强类型取列都要遍历行?哪如果取行呢?取dataset的第一行记录呢,一行包含很多个列,不会这样又要遍历列吧...
      

  5.   

    被你打败了,3楼说了,用什么方法取值,和强类型有什么关系呢?比如说,要获得CustomerID=1的那一条信息,然后显示Name:
    var _c = customers.Customers.First(p=>p.CustomerId=1);
    Console.WriteLine( _c.Name);