当前位置:编程学习 > C#/ASP.NET >>

泛型中应用datatable的问题

我的gridview的数据源是objectdatasource的数据来自一个类的一个泛型方法。
错误:ID 为“GridView1”的 GridView 的数据源没有任何可用来生成列的属性或特性。请确保您的数据源有内容。

我的代码:
public class OrderManage : Orders
{
    public static List<Orders> GetOrder()
    {
        DatabaseAccessController.DBAccessController db = null;
        db = new DatabaseAccessController.DBAccessController();

        DataTable DataTable1 = db.CallStoreProcedureWithQuery("StoredSlectOrders");
       
        List<Orders> list = new List<Orders>();
        foreach(DataRow dr in DataTable1.Rows)
        {
            Orders temp = new Orders(
                (int)dr["OrderID"],
                (string)dr["CustomerID"],
                (int)dr["EmployeeID"]);

            list.Add(temp);

        } 
        return list;
    } //断点执行到这里,结束,为什么? --------------------编程问答-------------------- DataTable1 内容为空,错误信息已经说明白了.
检查db.CallStoreProcedureWithQuery("StoredSlectOrders")函数. --------------------编程问答--------------------
引用楼主 wangshiying 的帖子:
我的gridview的数据源是objectdatasource的数据来自一个类的一个泛型方法。 
错误:ID 为“GridView1”的 GridView 的数据源没有任何可用来生成列的属性或特性。请确保您的数据源有内容。 

我的代码: 
public class OrderManage : Orders 

    public static List <Orders> GetOrder() 
    { 
        DatabaseAccessController.DBAccessController db = null; 
        db = new DatabaseAccessController.DBAccessController(); 

        DataTable DataTable1 = db.CallStoreProcedureWithQuery("StoredSlectOrders"); 
      
        List <Orders> list = new List <Orders>(); 
        foreach(DataRow dr in DataTable1.Rows) 
        { 
            Orders temp = new Orders( 
                (int)dr["OrderID"], 
                (string)dr["CustomerID"], 
                (int)dr["EmployeeID"]); 

            list.Add(temp); 

        } 
        return list; 
    } //断点执行到这里,结束,为什么?

说明你的DataTable1是没有记录的,根本没有东西foreach,也导致你出那样的错.你前面判断一下吧
if(DataTable1.Rows.Count>0)
{
//执行相应的内容,绑定的时候也判断list!=null&&list.count>0的时候才判断,这才好些
}
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,