Как отобразить заголовок викторины с указанием количества пользователей в каждой викторине на ASP.NET диаграмма?

#c# #asp.net #asp.net-charts

#c# #asp.net #asp.net-диаграммы

Вопрос:

Я создаю программу для создания викторин в своем веб-приложении. База данных состоит из следующих таблиц:

  • Таблица ВИКТОРИНЫ: Идентификатор викторины, заголовок, описание
  • Таблица пользовательского опроса: идентификатор пользователя, QuizID, дата завершения, оценка, имя пользователя

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

Я использую SqlDataSource для доступа к данным в базе данных.

Пожалуйста, помогите мне.

Комментарии:

1. В SQL? В конкретной среде ORM? Как вы получаете доступ к данным?

2. Я использую .NET Framework 4.0 (ASP.NET webforms) и Visual Studio 2010

Ответ №1:

В SQL это было бы что-то вроде

 SELECT  Q.QuizID, Q.Title, count(uq.*) as Users
  FROM  UserQuiz UQ
  JOIN  Quiz Q ON Q.QuizID = UQ.QuizID
GROUP BY Q.QuizID, Q.Title
  

или без псевдонимов таблиц, Q и UQ это было бы

 SELECT  Quiz.QuizID, Title, count(*) as Users
  FROM  UserQuiz
  JOIN  Quiz ON Quiz.QuizID = UserQuiz.QuizID
GROUP BY Quiz.QuizID, Title
  

использование полных имен таблиц для различения двух столбцов, называемых QuizID.

Комментарии:

1. Не могли бы вы, пожалуйста, упростить свой запрос? Я не понял этого, особенно букв Q, UQ, uq.*

2. Это имена таблиц псевдонимов: FROM UserQuiz UQ означает использовать UQ в качестве псевдонима для UserQuiz и аналогично Q для Quiz . Вам нужны псевдонимы, чтобы различать два вызываемых столбца, потому что у вас есть столбец с именем QuizID в каждой таблице.

Ответ №2:

Как насчет того, чтобы попробовать что-то вроде этого

 SELECT Title, count(UserQuizID) as usercount
FROM quiz a
JOIN userquiz b on a.quizid = b.quizid
GROUP BY Title
  

Заголовок будет вашим XValueMember и количеством пользователей YValueMember для серии.

Комментарии:

1. Я попытался выполнить этот запрос в SQLServer Management Studio, но я получил сообщение об ошибке. Я не знаю, почему

2. @Rup Действительно должен быть … мой плохой