public ListProduct RunProcGetVO(string sql, string str)
    {
        SqlConnection conn = connDB.CreateConn();
        SqlCommand cmd = new SqlCommand();
        cmd.CommandText = sql;
        cmd.CommandType = CommandType.Text;
        cmd.Parameters.AddWithValue("@str", str);
        cmd.Connection = conn;
        SqlDataAdapter sda = new SqlDataAdapter();
        DataSet ds = new DataSet();
        sda.SelectCommand = cmd;
        conn.Open();
        sda.Fill(ds);
        //从DataSet对象中读取数据,赋值给VO
        ListProduct myListProduct = new ListProduct();
        DataTableReader reader = ds.CreateDataReader();
        do
        {
            while (reader.Read())
            {
                myListProduct.PK_Product = reader[0].ToString ();
                myListProduct.RName = reader[1].ToString ();
                myListProduct.RType = reader[2].ToString();
                myListProduct.Kind = reader[3].ToString();
                myListProduct.Item = reader[4].ToString();
                myListProduct.Unit = reader[5].ToString();
                myListProduct.Value = Convert.ToSingle(reader[6]);
                myListProduct.Percent =Convert .ToSingle( reader[7]);
                myListProduct.GYear = reader[8].ToString();
                myListProduct.GMonth = reader[9].ToString();
                myListProduct.Operator = reader[10].ToString();
                myListProduct.TS =Convert .ToDateTime ( reader[11]);
            }
        }
        while (reader.NextResult());
        conn.Close();
        return myListProduct;  
    }
写完之后发现返回的只是记录集的最后一条记录,但我想要所有的记录,又不能用DataTable,怎么办?

解决方案 »

  1.   

            System.Collections.Generic.List<ListProduct> myListProducts = new System.Collections.Generic.List<ListProduct>();
            DataTableReader reader = ds.CreateDataReader();
            do
            {
                while (reader.Read())
                {
                    ListProduct myListProduct = new ListProduct(); 
                    myListProduct.PK_Product = reader[0].ToString ();
                    myListProduct.RName = reader[1].ToString ();
                    myListProduct.RType = reader[2].ToString();
                    myListProduct.Kind = reader[3].ToString();
                    myListProduct.Item = reader[4].ToString();
                    myListProduct.Unit = reader[5].ToString();
                    myListProduct.Value = Convert.ToSingle(reader[6]);
                    myListProduct.Percent =Convert .ToSingle( reader[7]);
                    myListProduct.GYear = reader[8].ToString();
                    myListProduct.GMonth = reader[9].ToString();
                    myListProduct.Operator = reader[10].ToString();
                    myListProduct.TS =Convert .ToDateTime ( reader[11]);
                    myListProducts.Add(myListProduct);
                }
            } 
      

  2.   

    有了实体类干嘛还要用datatable
      

  3.   

    这里用的是泛型吧,那用泛型把类封装以后怎么读取其中每一个类的数据,是不是像使用DataTable那样对其进行解析读取啊,请指教!