我的数据库中有一个名为“评论”的表,并且对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();
我希望能够在每列中看到实际输出作为实际平均数。