Ich habe 3 Tabellen: users
, feed(id,body,title,link)
und userstofeed(id,userid,feedid,isread)
während ich versuche, Bool Wert von userstofeed Tabelle zu lesen es IndexOutOfRangeException
bringen. Sagen Sie mir bitte, was ich falschIndexOutOfRangeException SqlDataReader Lesen Bool Wert aus der Tabelle
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;
}
Und hier SQL-store Verfahren so mache:
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
Ihre Prozedur sollte einen Fehler, da die Anzahl der Werte in der select-Anweisung ist dann die Anzahl unterschiedlicher erzeugen der Spalten in der INSERT-Anweisung: 'Spaltenname oder Anzahl der übergebenen Werte stimmt nicht mit der Tabellendefinition überein. –