如何从Gridview而非“ System.Data.DataSet”的存储过程中获取实际值?

时间:2019-03-22 22:00:16

标签: c# asp.net stored-procedures gridview dataset

我的数据库中有一个名为“评论”的表,并且对FoodQuality,ServiceRating,AtmosphereRating和PriceRating进行了评级。

我将数据绑定到Gridview,并尝试获取每个部分的平均评分,并在FooterText中的Gridview上显示它。

我正在使用存储过程来选择每个部分并获取平均值。 然后,我使用一种方法通过ID检索评论,然后尝试显示该平均值。

我没有得到实际数字,而是一直得到System.Data.DataSet

我尝试放入.Tables[0].Rows[0][""],但没有成功。

这是我的食品质量等级存储程序之一:

CREATE PROCEDURE [dbo].GetFoodRatingByID
    @theID int
AS
    SELECT AVG (FoodQuality)
    FROM Reviews
    WHERE RestaurantID = @theID

这是我的方法:

public string GetFoodRatingByID(int id)
        {
            DBConnect objDB = new DBConnect();
            objCmd.Parameters.Clear();
            objCmd.CommandType = CommandType.StoredProcedure;
            objCmd.CommandText = "GetFoodRatingByID";

            SqlParameter sqlParameter = new SqlParameter("@theID", id);

            sqlParameter.Direction = ParameterDirection.Input;
            sqlParameter.SqlDbType = SqlDbType.Int;
            sqlParameter.Size = 3;

            objCmd.Parameters.Add(sqlParameter);

            objDB.GetConnection();
            DataSet ds = objDB.GetDataSetUsingCmdObj(objCmd);
            string avgFoodRating = ds.ToString();

            objDB.CloseConnection();

            return avgFoodRating;

这是我的实际代码:

                    gvReviews.Columns[0].FooterText = "Average Ratings";
                    gvReviews.Columns[3].FooterText = p.GetFoodRatingByID(restID).ToString();
                    gvReviews.Columns[4].FooterText = p.GetServiceRatingByID(restID).ToString();
                    gvReviews.Columns[5].FooterText = p.GetAtmosRatingByID(restID).ToString();
                    gvReviews.Columns[6].FooterText = p.GetPriceRatingByID(restID).ToString();

                    gvReviews.DataSource = p.GetReviewByRestaurantID(restID);
                    gvReviews.DataBind();

我希望能够在每列中看到实际输出作为实际平均数。

0 个答案:

没有答案