Привязка данных: 'system.data.datarowview' не содержит свойства с именем 'sports'.
У меня есть зашифрованный чат через asp.net в C# &амп; мѕ SQL. У меня есть два выпадающих списка для выбора видов спорта, а затем еще один для сортировки чатов на основе пользователей онлайн/всего пользователей.
Когда я выбираю "все виды спорта "(значение по умолчанию) и" пользователи онлайн", запрос работает нормально.
Но когда я выбираю "все виды спорта "(значение по умолчанию) и" всего пользователей", запрос выдает некоторую ошибку.
"SELECT roo.[Sports] As Sport, roo.[Name] AS ChatRoomName, COUNT(DISTINCT liu.[LoggedInUserID]) AS OnlineUsers, COUNT(DISTINCT chu.ChatUserLogId) AS TotalUsers FROM Room AS roo LEFT JOIN LoggedInUser AS liu ON roo.RoomID = liu.RoomID LEFT JOIN ChatUserLog AS chu ON roo.RoomID = chu.RoomID AND chu.LoggedInTime >= DATEADD(DAY,-30,GETDATE()) GROUP BY roo.[Sports], roo.[Name]";
Результаты должны быть такими
Chatroom Name Online users Total Users Football Best football player ever? 0 5671 Messi or Ronaldo? 5 346 Who'll win EURO this year? 0 134 Swimming Best ever Swimmer? 0 3343 Phelps or Spitz? 0 1056 Lochte or Phelps for gold? 0 45 Tennis Serena or Steffi graf? 0 432 Federer or Djokovic? 0 298 Best server ever? 0 43
Мои результаты не сортируются должным образом, а также виды спорта, имеющие онлайн-пользователей, тоже показываются дважды.
CREATE TABLE [dbo].[ChatUserLog] ( [ChatUserLogId] BIGINT IDENTITY (1, 1) NOT NULL, [MId] INT NOT NULL, [RoomId] INT NOT NULL, [LoggedInTime] DATETIME DEFAULT (getdate()) NOT NULL, [LogOutTime] DATETIME DEFAULT (getdate()) NULL, PRIMARY KEY CLUSTERED ([ChatUserLogId] ASC) ); CREATE TABLE [dbo].[LoggedInUser] ( [LoggedInUserID] INT IDENTITY (1, 1) NOT NULL, [MId] INT NOT NULL, [RoomID] INT NOT NULL, [NickName] VARCHAR (50) NOT NULL, [Icon] VARCHAR (MAX) NOT NULL, CONSTRAINT [PK_LoggedInUser] PRIMARY KEY CLUSTERED ([LoggedInUserID] ASC) );
CREATE TABLE [dbo].[Message] ( [MessageID] INT IDENTITY (1, 1) NOT NULL, [RoomID] INT NOT NULL, [MId] INT NOT NULL, [ToUserID] INT NULL, [Text] VARCHAR (MAX) NOT NULL, [TimeStamp] DATETIME DEFAULT (getdate()) NOT NULL, [Color] VARCHAR (50) NULL, [NickName] VARCHAR (50) NOT NULL, [Icon] VARCHAR (MAX) NOT NULL, PRIMARY KEY CLUSTERED ([MessageID] ASC) ); CREATE TABLE [dbo].[Room] ( [RoomID] INT IDENTITY (6666, 1) NOT NULL, [Name] VARCHAR (100) NOT NULL, [Sports] VARCHAR (50) NOT NULL, [CreatedDate] DATETIME DEFAULT (getdate()) NOT NULL, [CreatedBy] VARCHAR (50) NOT NULL, [CreatedUserID] INT NOT NULL, PRIMARY KEY CLUSTERED ([RoomID] ASC) );
Спасибо заранее и иметь хороший день впереди.
Что я уже пробовал:
Я пытаюсь
"SELECT roo.[Sports] As Sport, roo.[Name] AS ChatRoomName, COUNT(DISTINCT liu.[LoggedInUserID]) AS OnlineUsers, COUNT(DISTINCT chu.ChatUserLogId) AS TotalUsers FROM Room AS roo LEFT JOIN LoggedInUser AS liu ON roo.RoomID = liu.RoomID LEFT JOIN ChatUserLog AS chu ON roo.RoomID = chu.RoomID AND chu.LoggedInTime >= DATEADD(DAY,-30,GETDATE()) GROUP BY roo.[Sports], roo.[Name]";
Suvendu Shekhar Giri
Это, наверное, уже 4-й или 5-й раз, когда я вижу подобный вопрос от вас?
Просто хочу знать, если это тот же самый вопрос?
Если нет, то чем он отличается от других?
Почему бы не обновить тот же вопрос?
Bigprey
Это совсем другое... Если бы вы могли прочитать или сравнить его с 1-м, вы бы уже знали его.
Я пытаюсь опубликовать этот другой вопрос уже 2-3 раза и был удален... Вот почему я поместил саму ошибку в качестве названия здесь... Пожалуйста, поймите и позвольте этому случиться.
Suvendu Shekhar Giri
ладно. :)