Я 3 таблицы: users
, feed(id,body,title,link)
и userstofeed(id,userid,feedid,isread)
в то время как я пытаюсь читать Ее значение из таблицы userstofeed это принесет IndexOutOfRangeException
. Скажи мне, что, пожалуйста, что я делаю неправильноIndexOutOfRangeException SqlDataReader чтение булева значение из таблицы
while (reader.Read())
{
rssFeed.Title = reader["title"].ToString();
rssFeed.Body = reader["body"].ToString();
rssFeed.Link = reader["link"].ToString();
rssFeed.IsRead = (bool) reader["isread"]; //IndexOutOfRangeException here
yield return rssFeed;
}
И здесь процедура SQL магазин:
create proc spGetItemsByUser
@userName nvarchar(50)
as
begin
declare @userId int
declare @feedId table (id int)
select @userId = id
from Users
where name = @userName
insert into @feedid (id)
select feedid, isread
from userstofeed
where userid = @userId
select * from feed where id in (select id from @feedId)
select isread from userstofeed where userid = @userId //Here I'm getting bit if it read or not
end
Ваша процедура должна сгенерировать ошибку, поскольку число значений в операторе отбора отличается, то число столбцов в инструкции insert: 'Имя столбца или количество заданных значений не соответствует определению таблицы.' –