В моей базе данных есть таблица с отзывами, и есть рейтинги для 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();
Я хочу видеть фактический результат как фактическое среднее число в каждом столбце.