Как получить фактическое значение из хранимой процедуры в Gridview вместо «System.Data.DataSet»? - PullRequest
0 голосов
/ 23 марта 2019

В моей базе данных есть таблица с отзывами, и есть рейтинги для FoodQuality, ServiceRating, AtmosphereRating и PriceRating.

Я привязываю данные к своему Gridview и пытаюсь получить средний рейтинг для каждого разделаи показать его на моем Gridview в FooterText.

Я использую хранимую процедуру, чтобы выбрать каждый раздел и получить среднее значение.Затем я использую метод для получения обзора по идентификатору, а затем пытаюсь получить это среднее значение, чтобы показать.

Вместо того, чтобы получить фактическое число, я продолжаю получать 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();

Я хочу видеть фактический результат как фактическое среднее число в каждом столбце.

...