У меня есть следующая команда sql с внутренним объединением:
SqlCommand cmd = new SqlCommand(@"SELECT c.comment_Id, c.date, c.comment, c.rating, a.registration_Date, a.username, a.email, a.profile_Image FROM News_comments c INNER JOIN News_accounts a ON c.account_Id=a.account_Id WHERE c.news_Id = @news_Id", conn);
cmd.Parameters.Add("news_Id", SqlDbType.Int).Value = news_Id;
conn.Open();
Я хочу поместить значения из a (News_accounts) в объект account , который сам по себе находится в объекте newsComment , который находится в общем Список Список новостейКомментарии .
Я делаю это так:
using (SqlDataReader reader = cmd.ExecuteReader()) {
while (reader.Read()) {
Comments newsComment = new Comments();
newsComment.comment_Id = int.Parse(reader["comment_Id"].ToString());
newsComment.date = DateTime.Parse(reader["date"].ToString());
newsComment.comment = reader["comment"].ToString();
newsComment.rating = int.Parse(reader["rating"].ToString());
newsComment.account.Registration_Date = DateTime.Parse(reader["registration_Date"].ToString());
newsComment.account.Username = reader["username"].ToString();
newsComment.account.Email = reader["email"].ToString();
newsComment.account.Profile_Image = reader["profile_Image"].ToString();
newsComments.Add(newsComment);
}
return newsComments;
}
В комментариях есть конструктор:
public Comments(int comment_Id, DateTime date, string comment, int rating, Accounts account) {
this.comment_Id = comment_Id;
this.date = date;
this.comment = comment;
this.rating = rating;
this.account = account;
}
И Аккаунт, а также:
public Accounts(int account_Id, DateTime registration_Date, string email, string username, string profile_Image, string homepage, string about, bool admin) {
this.account_Id = account_Id;
this.registration_Date = registration_Date;
this.email = email;
this.profile_Image = profile_Image;
this.homepage = homepage;
this.about = about;
this.admin = admin;
}
Вплоть до тех пор, пока рейтинг не пройдет хорошо и значения не будут помещены в объект newsComment , однако, когда он достигнет значений, которые необходимо поместить в объект account , то есть расположенный в объекте newsComment , он дает исключение NullReferenceException.
Я знаю, что это означает, что оно не имеет значения, но я не могу понять, почему оно не имеет значения.
Я посмотрел, проверил мое внутреннее соединение с конструктором запросов SQL Server 2008, и это работает
так что это должен быть объект, но я не вижу проблемы.
пожалуйста, помогите мне:)
привет